Bri*_*nal 3 java multithreading executorservice threadpool threadpoolexecutor
如果newCachedThreadPool()每个创建一个线程池,根据需要创建新线程,但会在它们可用时重用先前构造的线程,而在newFixedThreadPool(int size)指定大小的情况下创建指定大小的线程池.
为什么没有newFixedThreadPool(int size)以newCachedThreadPool()线程池仅在需要时创建新线程并将线程限制为大小的方式实现?
对上述内容的任何澄清都非常有用.
newFixedThreadPool也懒惰地创建线程,尝试这个测试
ThreadPoolExecutor p = (ThreadPoolExecutor) Executors.newFixedThreadPool(2);
System.out.println(p.getPoolSize());
p.execute(new Runnable() {public void run() {}});
System.out.println(p.getPoolSize());
Run Code Online (Sandbox Code Playgroud)
区别在于a)FixedThreadPool的线程永不过期,而CacheThreadPool在最后一次使用后60秒到期b)CacheThreadPool活动最大活动线程无限制
| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |