ThreadPool线程池
Posted jtfr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThreadPool线程池相关的知识,希望对你有一定的参考价值。
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线程池的主要内容,如果未能解决你的问题,请参考以下文章