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

为什么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 关注
  • 599 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号