我需要在我的java类中的一个方法中锁定多个对象.有关示例,请查看以下类:
public class CounterMultiplexer {
private int counter =0;
private int multiPlexer =5;
private Object mutex = new Object();
public void calculate(){
synchronized(mutex){
counter ++;
multiPlexer = multiPlexer*counter;
}
}
public int getCounter(){
return counter;
}
public int getMux(){
return multiPlexer;
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我有两个可以通过多个线程访问的资源.这两个资源是counter和multiPlexer属性.正如您在上面的代码中看到的,我使用互斥锁锁定了两个资源.
这种锁定方式是否正确?我是否需要使用嵌套的Synchronized语句来锁定calculate方法中的两个资源?