Tôi có một đoạn mã (giản thể):Mở khóa trên ReentrantLock mà không IllegalMonitorStateException
if(reentrantLockObject.isLocked()) {
reentrantLockObject.unlock();
}
nơi reentrantLockObject là java.util.concurrent.locks.ReentrantLock. Thỉnh thoảng tôi nhận được IllegalMonitorStateException. Đường nối khóa được giải phóng giữa cuộc gọi kiểm tra và mở khóa(). Làm cách nào để ngăn chặn ngoại lệ này?
@Mihail, Nếu bạn không biết hay không phải chủ đề của bạn giữ khóa, tôi đề nghị bạn có thể làm điều gì sai. –