use*_*108 5 java concurrency multithreading
我遇到了这样的逻辑,即有人在今天的工作中实现了,并且以这种方式创建锁是错误的.你们有更好的解决方案吗?不在myObj上使用synchronized块的问题是它可以为null.还有其他建议吗?
public class myClass {
private Object myObj;
private Object lock = new Object();
public void method1() {
synchronized( lock ) {
// has logic to read myObj
}
}
public void method2() {
synchronized( lock ) {
// has logic to update myObj
}
}
}
Run Code Online (Sandbox Code Playgroud)
Tud*_*dor 10
看起来适合我.我还要添加final锁定声明以确保它不会无意中被更改:
private final Object lock = new Object();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
230 次 |
| 最近记录: |