JAVA并发的学习笔记

来源:互联网 发布:h3c mac认证 编辑:程序博客网 时间:2024/04/28 13:14

第一节

          线程池:1.线程池在包java.util.concurrent.Executors

                         2.常用方法 newCachedThreadPool();创建一个根据需要创建新线程的线程池,但是以前的线程可用时将重用他们

                                           newFixedThreadPool(int  sun);创建一个可重用的固定线程数的线程池

                                           newSingleThreadScheduledExecutor();就像 newFixedThreadPool(1)创建单个线程,确保任意时刻任何线程中都只有唯一的任务在运行,

                                           如果向newSingleThreadScheduledExecutor提交了多个任务,那么这些任务将按照提交顺序排队执行。

          ExecutorService(具有服务生命周期的Executor)对象的使用:java.util.concurrent.ExecutorService

                        创建:ExecutorService exec=Executors.newCachedThreadPool();

                        常用方法:1.   exec.execute(new 线程对象);

                                          2.   exec.shutdown(); 启动一次顺序关闭,执行以前提交的任务,阻止新任务进入

                                          3.   exec.submit(线程对象/callablb对象);将 参数对象 提交用于执行,并返回一个表示该任务的Future<>对象

           Callable接口的使用:java.util.concurrent.Callable;

                         Runnable是执行的独立任务,但是他不返回任何值;如果想要任务执行完毕后能有返回值,可以实现Callable接口;由call()方法代替run();

                         Callable是一种具有类型参数的泛型,它的类型参数表示 call()的返回值类型,并且必须使用ExecutorService.submit()调用Callable

                         Future的isDone()  如果任务执行完成,则返回true,get() 得到值



原创粉丝点击