Java线程池

2019-11-11  本文已影响0人  抄无止境

Java并发编程:线程池的使用

1.使用线程池的优点?
1.降低资源消耗:重复利用线程池中的线程节省线程创建和销毁带来的消耗;
2.提高性能:当任务需求时,可以不用创建线程直接执行,主要是直接从线程池中取出线程去执行;
3.提高线程的可管理性:线程是稀缺资源,而且也是任务中不可少的资源,如果频繁的且无限制的创建会消耗系统资源,降低系统稳定性导致系统崩溃,内存溢出等等问题

2.线程池的个数怎么定?
根据时CPU密集型还是IO密集型来决定
CPU密集型:CPU个数+1
IO密集型:2*CPU个数+1
在这篇如何合理地估算线程池大小?文章中发现了一个估算合理值的公式
最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目

如何合理设置线程池大小
3.线程池的实现原理?


图片.png
图片.png

1.如果当前运行的线程小于线程池的核心线程数,那么马上创建线程完成这个任务。
2.如果运行中的线程数大于等于线程池的核心线程数,那么将线程放进任务队列等待。
3.如果此时任务队列已满,且正在运行的线程数小于最大线程数,立即创建非核心线程执行这个任务。
4.如果此时任务队列已满,且正在运行的线程数等于最大线程数,则线程池会启动饱和拒绝策略来执行。

https://blog.csdn.net/qq_42798661/article/details/93769110

上一篇下一篇

猜你喜欢

热点阅读