【发布时间】:2011-10-02 11:20:46
【问题描述】:
当线程 1 拥有一个对象的内在锁时,因为
synchronized(object) {
...
}
可以打电话吗
object.method()
是否需要分别从线程 2 输入
synchronized(object) {
object.method();
}
在线程 2 中防止它在线程 1 持有锁时调用方法?
在我的例子中,我在迭代 Map 时遇到了 ConcurrentModificationExceptions,我试图通过锁定地图来防止其他线程的修改。而且我知道 ConcurrentModificationExceptions 的原因通常是在迭代期间更改了地图,但我很确定在我的情况下不是这种情况,因为迭代中只有“get”语句和一个方法调用,所以不能进行任何修改。
提前致谢。
比纳比克
【问题讨论】:
-
愿意分享您方法的代码吗?也许里面有你没想到的东西
标签: java concurrency