获得徽章 6
下面是Java中ThreadPoolExecutor中addWorker()的某段源码:

jdk1.8:
if (rs >= SHUTDOWN &&
! (rs == SHUTDOWN &&
firstTask == null &&
! workQueue.isEmpty()))
return false;

jdk17:
if (runStateAtLeast(c, SHUTDOWN)
&& (runStateAtLeast(c, STOP)
|| firstTask != null
|| workQueue.isEmpty()))
return false;

jdk1.8中表达的意思和和jdk17表达的意思一样,但是jdk1.8的表达方式晦涩难懂,有点绕,
在jdk17中个人感觉还是有点绕,如果是我,就直接写成:
if ( runStateAtLeast(c, SHUTDOWN)
&& (workQueue.isEmpty() || firstTask != null)
|| runStateAtLeast(c, STOP) )
return false;
1. 如果当前线程池的状态是SHUTDOWN并且 任务队列workQueue是空或者firstTask != null 则直接返回false
2. 或者当线程池的状态是STOP,则直接返回false
展开
评论
IDEA 推荐一款好用插件 CodeGeex,今天刚装上,用起来还不错。
pinge于2023-12-08 15:15发布的图片
23
想问问jym,大家看源码有什么心得吗,求分享
1
后端
你即使有一半的时间都在犯错,到最后依然能赢。 我拍了30年电影,从中发现了一个简单的道理:有些作品会成功,有些不会。没必要去深究哪些会,继续拍下去就行。——《金钱心理学:财富、人性和幸福的永恒真相》
评论
下一页
个人成就
文章被点赞 90
文章被阅读 17,294
掘力值 696
收藏集
0
关注标签
0
加入于