平台: Windows7 32bit
JDK版本: 1.5.0_22,1.8.0_121
实测结果为:
tryLock(): true
tryLock(2, TimeUnit.SECONDS): true
tryLock(): true
tryLock(2, TimeUnit.SECONDS): true
acquired
和书中给的例子不一样,从结果上看是main线程中Thread.yield()方法,并没有给后台线程执行机会,没有获得竞争锁
将Thread.yield()方法替换为TimeUnit.MILLISECONDS.sleep(1);后即可实现预期效果
tryLock(): true
tryLock(2, TimeUnit.SECONDS): true
acquired
tryLock(): false
tryLock(2, TimeUnit.SECONDS): false