您的位置:首页 > 编程语言 > Java开发

java的Executors类中创建线程池方法的解析

2017-04-20 11:47 295 查看
1,newFixedThreadPool(int nThreads)

创建一个重复利用一定数目线程的线程池。在任何时候,最多只能有nThreads个线程运行。当全部的线程都在运行,如果额外的任务提交,那么它们将会在队列中等待,直到有线程可以使用。如果任何线程因为在执行时候失败而终止,一个新的任务将会占据这个线程。这个线程池会一直存在,除非关闭

2,newWorkStealingPool(int parallelism)

根据给定的并行等级,创建一个拥有足够的线程数目的线程池。或许会使用多重队列来降低冲突。并行的等级是和运行的最大线程数目相关。真实的线程数目或许会动态地增长和收缩。一个工作窃取的线程池对于提交的任务不能保证是顺序执行的

3,newWorkStealingPool()

利用所有运行的处理器数目来创建一个工作窃取的线程池

4, newFixedThreadPool(int nThreads, ThreadFactory threadFactory)

创建一个重复利用一定数目线程的线程池。threadFactory是创建新的线程的工厂

5,newSingleThreadExecutor()

创建只拥有一个线程的线程执行工具

6,newSingleThreadExecutor(ThreadFactory threadFactory)

创建一个只利用一个线程执行任务的执行工具,在需要的时候,threadFactory会创建新的线程

7,newCachedThreadPool()

创建一个能够线程池,这个线程池会根据实际需要,创建新的线程,如果有空闲的线程,空闲的线程也会被重复利用。对于那些执行生命周期短的异步任务来讲,这个线程池会先出提高程序的处理性能。如果一个线程60s内没有被使用,那么就会被移除,因此随着时间推移,这个线程池不会消耗很多资源

8,newCachedThreadPool(ThreadFactory threadFactory)

threadFactory会根据需要,创建新的线程的线程工厂

9,newSingleThreadScheduledExecutor()

创建只有一个线程的执行器,可以周期性或者延时执行一个任务,任务保证会按照顺序执行,在任何时间只有一个任务会被执行

10,newSingleThreadScheduledExecutor(ThreadFactory threadFactory)

threadFactory,根据需要创建新的线程

11,newScheduledThreadPool(int corePoolSize)

创建一个线程池,它会维持corePoolSize数目个线程,就算线程空闲,也不会被移除。可以周期地或者延时执行任务

12,newScheduledThreadPool(

int corePoolSize, ThreadFactory threadFactory)

创建一个线程池,它会维持corePoolSize数目个线程,就算线程空闲,也不会被移除。可以周期地或者延时执行任务。threadFactory会根据需要创建新的线程

13,unconfigurableExecutorService(ExecutorService executor)

创建一个执行服务的代理,返回值是ExecutorService

14,unconfigurableScheduledExecutorService(ScheduledExecutorService executor)

创建一个执行服务的代码,返回值是ScheduledExecutorService
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java Executors