频道栏目
首页 > 资讯 > Java > 正文

(二十一)java多线程之Executors

16-11-05        来源:[db:作者]  
收藏   我要投稿

引言

java 自动的两个线程池讲完,今天就讲跟他们有关的一个工具类吧–Executors

理论

Executors 仅仅是一个线程池的工具类,它无法实例话,包含都是静态方法或静态类.

newFixedThreadPool(int nThreads) 创建一个指定线程数量的线程池t nThreads, ThreadFactory threadFactory)` 创建一个可以自定义的线程工厂的指定线程数量的线程池 newSingleThreadExecutor() 创建一个只有一个线程的线程池 newSingleThreadExecutor(ThreadFactory threadFactory) 创建一个可以自定义线程工程的且只有一个线程的线程池 newCachedThreadPool 创建一个可以缓存的线程池,它的源码其实是return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue()); 通过这里我们可以看出,他的核心线程数0,最大线程数为Integer.MAX_VALUE,但线程空闲时,线程可以缓存1分钟,之后如果还没有任务则被回收.工作队列是一个容量0大小的SynchronousQueue队列 newCachedThreadPool(ThreadFactory threadFactory) 跟上面一样,只是多了可以自定义线程工厂 newSingleThreadScheduledExecutor() 创建一个只有一个线程的任务调度线程池. newSingleThreadScheduledExecutor(ThreadFactory threadFactory) 创建一个只有一个线程且能自定义线程工程的任务调度线程池 newScheduledThreadPool(int corePoolSize) 创建指定线程数量的任务调度线程池 newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory) 创建一个可以指定数量写自定义线程工程的任务调度线程池

除此之外,Executors还提供了让Runnable转化为Callable的适配器

例子

这个章节就不写例子,前面学了线程池的知识之后,直接看Executors源码,就感觉比较清晰


相关TAG标签
上一篇:深入理解Java的接口和抽象类
下一篇:Java 内存模型JMM
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站