(二十一)java多线程之Executors

本人邮箱: <kco1989@qq.com>
欢迎转载,转载请注明网址 http://blog.csdn.net/tianshi_kco
github: https://github.com/kco1989/kco
代码已经所有托管github有须要的同窗自行下载java

引言

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

理论

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

  • newFixedThreadPool(int nThreads) 建立一个指定线程数量的线程池t nThreads, ThreadFactory threadFactory)` 建立一个能够自定义的线程工厂的指定线程数量的线程池缓存

  • newSingleThreadExecutor() 建立一个只有一个线程的线程池微信

  • newSingleThreadExecutor(ThreadFactory threadFactory) 建立一个能够自定义线程工程的且只有一个线程的线程池工具

  • newCachedThreadPool 建立一个能够缓存的线程池,它的源码实际上是return new ThreadPoolExecutor(0, Integer.MAX_VALUE,60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>()); 经过这里咱们能够看出,他的核心线程数0,最大线程数为Integer.MAX_VALUE,但线程空闲时,线程能够缓存1分钟,以后若是尚未任务则被回收.工做队列是一个容量0大小的SynchronousQueue队列spa

  • newCachedThreadPool(ThreadFactory threadFactory) 跟上面同样,只是多了能够自定义线程工厂.net

  • newSingleThreadScheduledExecutor() 建立一个只有一个线程的任务调度线程池.线程

  • newSingleThreadScheduledExecutor(ThreadFactory threadFactory) 建立一个只有一个线程且能自定义线程工程的任务调度线程池code

  • newScheduledThreadPool(int corePoolSize) 建立指定线程数量的任务调度线程池

  • newScheduledThreadPool(int corePoolSize, ThreadFactory threadFactory) 建立一个能够指定数量写自定义线程工程的任务调度线程池

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

例子

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


打赏

若是以为个人文章写的还过得去的话,有钱就捧个钱场,没钱给我捧我的场(帮我点赞或推荐一下)
微信打赏
支付宝打赏

相关文章
相关标签/搜索