java的Executors类中创建线程池方法的解析
2017-04-20 11:47
344 查看
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
创建一个重复利用一定数目线程的线程池。在任何时候,最多只能有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 多线程池ThreadPoolExecutor解析及Executors类中提供的静态方法来创建线程池
- Java中Executors类中几种创建各类型线程池的方法及实例
- java 并发包里Eexcutors创建线程池的几种方法
- Java创建和解析Json数据方法(四)——json-lib包的使用
- Java创建和解析Json数据方法(四)——Google Gson包的使用
- Java创建和解析Json数据方法(二)——org.json包的使用
- Java中的static关键字解析(转自海子)__为什么main方法必须是static的,因为程序在执行main方法的时候没有创建任何对象,因此只有通过类名来访问。
- Java 创建线程池两种不同方法的比较
- Java创建和解析Json数据方法(三)——json-lib包的使用
- java创建线程池的四种方法
- Java创建和解析Json数据方法(二)——org.json包的使用
- JUC学习笔记--从阿里Java开发手册学习线程池的正确创建方法
- Executors类中创建线程池的几种方法的分析
- Java创建和解析Json数据方法——org.json包的使用(转)
- Java 创建线程池两种不同方法的比较
- Java创建和解析Json数据方法(三)——json-lib包的使用
- 2-5-Java多线程-创建线程的Runnable接口方法及Thread源码解析
- Executors类中创建线程池的几种方法的分析
- [Java多线程]-线程池的基本使用和部分源码解析(创建,执行原理)
- Java创建和解析Json数据方法(二)——org.json包的使用