为了账号安全,请及时绑定邮箱和手机立即绑定

为什么ThreadPoolExecutor源码实现中用的是ReentrantLock锁?

为什么ThreadPoolExecutor源码实现中用的是ReentrantLock锁?

30秒到达战场 2019-03-01 11:05:57
private boolean addIfUnderCorePoolSize(Runnable firstTask) { Thread t = null; final ReentrantLock mainLock = this.mainLock; mainLock.lock(); try { if (poolSize < corePoolSize && runState == RUNNING) t = addThread(firstTask); } finally { mainLock.unlock(); } if (t == null) return false; t.start(); return true; } ThreadPoolExecutor源码实现中大量使用了ReentrantLock 锁,请问为什么使用的是ReentrantLock 锁而不是别的锁机制呢?
查看完整描述

1 回答

?
撒科打诨

TA贡献1934条经验 获得超2个赞

不使用可重入锁,如果同一个线程多次调用锁就麻烦大了

查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 555 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信