我有两个Singleton对象的实例方法method1
和method2
.method1
可以由单独的线程并发运行.这意味着我们可以有5个线程,每个线程同时运行method1
,或者1个线程同时运行method2
.
我想阻止method1
在method2
运行时运行,而method2
在method1
运行时运行.
我想像下面的代码一样同步两个方法,这解决了两个方法不能同时执行的问题,但它也会阻止我的5个线程同时运行method1
,即使method2
没有运行.
void synchronized method1() {
//do something
}
void synchronized method2() {
//do other thing
}
第一次使用Java多线程所以感谢大家的建议,谢谢.
EDIT:看起来readWriteLock
岁是个不错的 Select