Aスレッドが処理中にBスレッドは処理待ちにせずに、
Aが処理中である旨のエラーを返してBはスレッドを抜けさせる処理を実装する場合です。
ReentrantLockのtryLock()でロックのチェックと取得を、
unlock()でロックの解除をさせてようと考えています。
private static final ReentrantLock lock=new ReentrantLock(); void main() { if(!lock.tryLock()) { return error; } try{ doSomething(); } catch { } finally { lock.unlock(); } }
これで問題はないと思いますが、デッドロックのような状態になったり、
ロックの動作が保証されるか不安です。
この方法でロックが保証されるか、もしくは他にいい方法があればご教授いただきたいです。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。