Angenommen, ich habe zwei Klassen A und BKann der Thread-Zugriff auf 'A' gesperrt werden, während ein Thread 'B' ausführt?
public class A
{
public synchronized void doSomethingA
{
//Do stuff
}
}
public class B
{
public synchronized void doSomethingB
{
//Do other stuff
}
}
Und ich habe zwei Threads gemeinsam laufen, lassen Sie uns sie x und y nennen.
Da die Methoden synchronisiert sind, ist es für y nicht möglich, auf dosomethingA zuzugreifen, während x dort ist, aber es kann auf doSomethingA zugreifen, während x doSomethingB tut.
Gibt es eine Möglichkeit y daran zu hindern, etwas zu tun, während x in doSomethingA oder in doSomethinB ist?
Beachten Sie, dass Sie ein Objekt und keine Methode oder einen Thread sperren. Wenn Sie den Zugriff auf ein gesperrtes Objekt sperren möchten, rufen Sie zuerst die Sperre auf. –