Тогда самый простой способ - использовать явную блокировку (ReentrantLock
) и вызвать ее метод tryLock()
.
Если он возвращает true, то это означает, что ни один другой поток не имеет блокировки, и текущий поток получил ее.
Если он возвращает false, это означает, что другой поток удерживает блокировку, и вы не должны вызывать метод.
Не забудьте всегда вызывать unlock()
в блоке finally, чтобы убедиться, что блокировка снята даже в случае возникновения исключения.