Java での同期に関して、比較的単純な (おそらくばかげた) 質問があります。
コード全体でさまざまなオブジェクトのロックを取得する同期ブロックがあります。いくつかのシナリオでは、コード内の他のすべての同期ステートメントを包含するグローバル ロックを取得したいと考えています。
現在の同期コードをすべて書き直さずに Java でこれを行うための素晴らしい方法はありますか?
例えば、
スレッド t1
synchronized (o1)
{
synchronized (o2)
{
// ...
}
}
スレッド t2
synchronized (global_lock)
{
// ...
}
スレッド t2 が同期ブロック内にある場合、スレッド t1 は o1 と o2 のロックを取得できません。
どうもありがとう