首页 > 编程语言 > 详细

ThreadPool线程池

时间:2018-12-27 22:35:09      阅读:256      评论:0      收藏:0      [点我收藏+]

0.线程池的好处

  复用线程,减少线程创建和销毁的开销。

  对线程的进行管理:定时,并发数的控制。

1.常用的三个线程池

new SingleThreadExecutor 核心线程一个、最大线程一个、创建后不销毁、无限队列

 

 1 /**
 2  * new SingleThreadExecutor 核心线程一个、最大线程一个、创建后不销毁、无限队列
 3  */
 4 private static void singleThreadPool() {
 5     ExecutorService executor = Executors.newSingleThreadExecutor();
 6     for (int i = 0; i < 10; i++) {
 7         executor.execute(new MyRunable(i));
 8     }
 9     // 执行完后销毁线程池
10     executor.shutdown();
11 }

 

技术分享图片

 

new FixedThreadPool核心线程和最大线程一样,创建后不销毁、无限队列

 1 /**
 2  * new FixedThreadPool        核心线程和最大线程一样,创建后不销毁、无限队列
 3  */
 4 private static void fixedThreadPool() {
 5     int threadSize = 5;
 6     ExecutorService executor = Executors.newFixedThreadPool(threadSize);
 7     for (int i = 0; i < 15; i++) {
 8         executor.execute(new MyRunable(i));
 9     }
10     // 执行完后销毁线程池
11     executor.shutdown();
12 }

技术分享图片

new CachedThreadPool核心线程零个、最大线程无限、创建后60s无复用销毁、同步队列

 1 /**
 2  * new CachedThreadPool        核心线程零个、最大线程无限、创建后60s无复用销毁、同步队列
 3  */
 4 private static void cachedThreadPool() {
 5     ExecutorService executor = Executors.newCachedThreadPool();
 6     for (int i = 0; i < 100; i++) {
 7         executor.execute(new MyRunable(i));
 8     }
 9     // 执行完后销毁线程池
10     executor.shutdown();
11 }

技术分享图片

 

ThreadPool线程池

原文:https://www.cnblogs.com/jtfr/p/10187419.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!