は、私は二つのクラスAとBスレッドが 'B'を実行しているときにスレッドアクセスを 'A'にブロックすることはできますか?
public class A
{
public synchronized void doSomethingA
{
//Do stuff
}
}
public class B
{
public synchronized void doSomethingB
{
//Do other stuff
}
}
を持っていると私は一斉に実行している2つのスレッドがあると仮定し、のは、xとyそれらを呼びましょう。
メソッドが同期しているので、xがそこにある間にyがdosomethingAにアクセスすることはできませんが、xがdoSomethingBを実行している間はdoSomethingAにアクセスできます。
xがdoSomethingAまたはdoSomethinBにある間にyが何かをブロックする方法はありますか?
メソッドまたはスレッドではなくオブジェクトをロックすることに注意してください。ロックされたオブジェクトへのアクセスをブロックする場合は、最初にロックを取得します。 –