首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java 锁解决办法

2012-09-29 
java 锁现在又这样一个问题Java codepublic class A(){public void doA(){}}public class B(){public void

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) {                    }    }} 

热点排行