【发布时间】:2013-09-04 10:24:28
【问题描述】:
假设我有以下场景:
final int index = 10;
Phone phone = phoneList.get(index);
synchronized(phone)
{
//some code runs here
}
所以当电话对象(通过 phoneList.get() 方法获得)被锁定时,另一个线程可以执行该方法:
phoneList.remove(index);
并将给定索引处的电话对象设为空?
【问题讨论】:
-
当然可以,为什么不呢?您没有在列表本身上同步。
-
是的,它会...如果您想避免同样的情况,请在列表中进行同步...stackoverflow.com/questions/1431681/… 可能会帮助您
标签: java synchronization thread-safety