jdk线程池中线程数量的调控问题

qianglan110 2015-08-09 02:24:06
在jdk里面有个线程池的实现类ThreadPoolExecutor,在该类中所有的线程都存放在HashSet<Worker> workers的变量中,线程池根据其中的线程空闲情况,实时的调节线程池的大小。在调节的过程中,调用每个Worker对象的interruptIfIdle方法,该方法是判定当前线程处于空闲状态时,去关闭它。

这是该方法的实现源码:
void interruptIfIdle() {
final ReentrantLock runLock = this.runLock;
if (runLock.tryLock()) {
try {
if (thread != Thread.currentThread())
thread.interrupt();
} finally {
runLock.unlock();
}
}
}

我的问题是:
当系统执行到该方法时任务线程thread和当前执行线程Thread.currentTread()难道不相同吗?即为什么要进行thread != Thread.currentThread()的判断?

请大神指点迷津!
...全文
60 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qianglan110 2015-08-11
  • 打赏
  • 举报
回复
大神们呢

50,331

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧