Java 是否可以阻止线程访问';A';线程执行时';B';?

Java 是否可以阻止线程访问';A';线程执行时';B';?,java,multithreading,Java,Multithreading,假设我有两个类A和B public class A { public synchronized void doSomethingA { //Do stuff } } public class B { public synchronized void doSomethingB { //Do other stuff } } 我有两个线程同时运行,我们称它们为x和y 由于这些方法是同步的,因此当x在其中时y不可能访问d

假设我有两个类A和B

public class A
{
    public synchronized void doSomethingA
    {
        //Do stuff
    }
}

public class B
{
    public synchronized void doSomethingB
    {
        //Do other stuff
    }
}
我有两个线程同时运行,我们称它们为x和y

由于这些方法是同步的,因此当x在其中时y不可能访问dosomethingA,但当x在执行doSomethingB时,y可以访问dosomethingA


当x在doSomethingA或doSomethinB中时,有没有办法阻止y做任何事情?

有很多方法。最直接的方法是使用`


它提供的功能与同步的功能相同,但您自己负责管理锁定。您需要在类之间共享一个,以便两个方法都可以使用它进行锁定。

谢谢!那有帮助!我尽量不花时间给出毫无帮助的答案。请注意,锁定的对象不是方法或线程。如果要阻止对锁定对象的访问,请先获得锁定。