你好,我第一直觉是 tryLock 这个方法使用的问题,查阅了一下文档。
看了官方的api,这个tryLock是会返回布尔结果的。
按照你的写法,tryLock 过了三十秒,代码就会往下执行了。
建议可以延长尝试枷锁的事件,或者试试下面的写法。
// or wait for lock aquisition up to 100 seconds
// and automatically unlock it after 10 seconds
boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);
if (res) {
try {
...
} finally {
lock.unlock();
}
}