synchronized
コードの一部をスレッド セーフにするために、Java のブロックを利用してきました。通常ブロックを使用できるデータ構造をJavaに移植してsynchronized
いますが、典型的なJavaの方法でそれらを使用する方法を常に知っているわけではありません。
1 つのシナリオの例を次に示します。
myMethod (Bool useLock)
{
if (useLock)
{
//locks the following section of code until unlocked.
lockObject.lock();
}
//do more stuff....
if (useLock)
{
//unlocks exclusive control of code.
lockObject.unlock();
}
}
Javaでこれと同等のことを行うにはどうすればよいですか? このコードでは、ロックしたい場合とロックしたくない場合がありますが、それについては賢く、同じコードの 2 つのバージョンを記述する必要はありません。synchronized
ブロックを使用する以外にJavaでロックする方法はありますか?