java 锁
现在又这样一个问题
Java code
public class A(){
public void doA(){}
}
public class B(){
public void doB(){}
}
现在又两个类 A,B。
如何利用java 锁的机制,实现当A 执行方法doA 时,B 类中doB 不能执行,当B执行doB 时,A 不能执行doA。
意思就是说 doA和doB 不能够在同一时刻执行。
以前记得现在给忘了 ~~
------解决方案--------------------
分两种:
1、是同一个A对象的doA和doB互斥,还是
2、不同A类的对象的doA和doB都要互斥
如果是1,在void前加一个synchronized即可
如果是2,将方法写成这种模板:
public void doA() {
synchronized(A.class) {
...//doA中原来要做的
}
}
------解决方案--------------------
请看:
Java code
public class A(){
public static Object obj = new Object();
public void doA(){
synchronized(A.obj) {
}
}
}
public class B(){
public void doB(){
synchronized(A.obj) {
}
}
}