私は、クラスオブジェクトの静的同期ロックと、オブジェクトインスタンスの非静的ロックを理解しています。 Static versus non-static lock object in synchronized blockスレッド内の静的同期と非静的同期メソッドの違い
あなたは非静的ロックオブジェクトを使用します:この質問のために受け入れ答えでしかし
1つの呼び出しは(o1.foo
- スレッド)
- スレッド2件の通話スレッド1が終了するのを待たなければならないでしょう
- スレッド3を呼び出すo2.foo()、スレッド1と2を指定しないでそのまま続けることができます
なぜスレッド3はスレッド1とスレッド2を意識せずに続行できますか?スレッド3は、スレッド1またはスレッド2からオブジェクトインスタンス 'this'のロックを取得するまで待機する必要がありますか?
質問をさらに指定できますか?あなたが尋ねた質問は、あなたが提供したリンクで回答されているので、それらは異なるObjectインスタンスなので、スレッド3はスレッド1と2の別のロックでロックしています。 – Nier
はい、私は彼らが同じインスタンスであると思っていました。 –