Java 是否可以阻止线程访问';A';线程执行时';B';?
假设我有两个类A和BJava 是否可以阻止线程访问';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
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做任何事情?有很多方法。最直接的方法是使用`
它提供的功能与同步的功能相同,但您自己负责管理锁定。您需要在类之间共享一个,以便两个方法都可以使用它进行锁定。谢谢!那有帮助!我尽量不花时间给出毫无帮助的答案。请注意,锁定的对象不是方法或线程。如果要阻止对锁定对象的访问,请先获得锁定。