假設我有兩個類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?
請注意,您鎖定的對象不是方法或線程。如果要阻止訪問鎖定的對象,請首先獲取鎖定。 –