假设我有两个类A和B当线程执行'B'时,是否可以阻止线程访问'A'?
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时,它可以访问doSomethingA。
有没有办法阻止y做任何事,而x是在doSomethingA或doSomethinB?
请注意,您锁定的对象不是方法或线程。如果要阻止访问锁定的对象,请首先获取锁定。 –