同步语句
|
我尝试在下面的代码中同步对象:
public void myMethod() {
synchronized (globalObj) {
//Do something here
}
}
该代码在一个线程中执行。问题是,另一个线程可能会将\'globalObj \'设置为null。然后,当其他线程将\'globalObj \'设置为null时,\'synchronized(globalObj)\'将抛出NullPointerxception。
在对象上进行同步以免引发NullPointerException的最佳实践是什么?
谢谢。
没有找到相关结果
已邀请:
4 个回复
硕歌沙
,则意味着您可能持有旧
的锁,而另一个线程在完全不同的线程上工作-锁根本无法帮助您。 为此,您应该做一个单独的ѭ3::
由于
永远不变,因此您将始终使用相同的锁-没问题。
肉簧咸缮
参考上进行同步。最佳实践是在
对象上同步(以确保它永远不会是
),或者(更好)使用
包中的更高级别的并发抽象。
俯乡骚钵皆
殿虫