Java线程池出毛病,百度大佬:3核的cpu机器,“你还要我怎样”

今天小编在网上看到有小伙伴发了一个有关线程的问题:

Java线程池ThreadPoolExecutor中:为什么线程池中有空闲的线程,但是任务队列任然存在等待的任务。

ThreadPoolExecutor的tostring方法打印出的日志:java.util.concurrent.ThreadPoolExcutor@34aca000[Running,pool size = 20,active threads = 3,queued tasks = 7,completed tasks = 550]

有没有大神遇到过这种情况?

Java线程池出毛病,百度大佬:3核的cpu机器,“你还要我怎样”

有个滴滴程序员觉得是核心线程都被占着,核心线程设置的是3个吧!但楼主回复到,core设置的是20 max设置的是50 队列设置的是200。

另一个网友表示,是任务进来,发现core没有空闲,然后进queue,然后core空了一部分就去queue取出来执行。又有一位程序员网友问道楼主的corethread和maxthread、queuesize配置多少?记得在初始化的时候,如果线程数小于corethread会新建线程,等超过了,会进queue,等queue满了又开始新建线程直到maxtread。

如果大家想要学习java编程的小伙伴,可以关注小编头条号,【点击头像,右上角私信:学习】,小编也是一名从事了6年java开发的全栈工程师,花了近一个月整理了一份较适合18年学习的java干货,础原理、框架源码和工作经验都有涉及,权当是福利吧!

Java线程池出毛病,百度大佬:3核的cpu机器,“你还要我怎样”

但有网友觉得是物理机器本身空闲的线程不够了。

Java线程池出毛病,百度大佬:3核的cpu机器,“你还要我怎样”

最后还是一位百度大佬发现的问题所在:3核cpu机器 。线程池:“你还要我怎么样”

Java线程池出毛病,百度大佬:3核的cpu机器,“你还要我怎样”

对于出现这样的问题,大家有没有出现过呢?欢迎在评论区交流吐槽!

如果大家想要学习java编程的小伙伴,可以关注小编头条号,【点击头像,右上角私信:学习】,小编也是一名从事了6年java开发的全栈工程师,花了近一个月整理了一份较适合18年学习的java干货,础原理、框架源码和工作经验都有涉及,权当是福利吧!

Java线程池出毛病,百度大佬:3核的cpu机器,“你还要我怎样”


分享到:


相關文章: