collection.synchronizedlist迭代器是阻止整个迭代过程还是只阻止.next()部分?

nmpmafwu  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(210)

在我问任何问题之前,你可以告诉我阅读文档。但我还是一个初学者,我不太容易处理文件。我的问题是迭代器 SynchronizedList 阻止“整个迭代过程(循环)”还是仅仅阻止它的方法?
意思:另一个线程可以做一些工作吗 synchronizedList 示例,而迭代正在“进行”?或者它可以在调用 next() ,我注意到了 next() 也是同步的。
如果有任何帮助,我将不胜感激,谢谢:)

doinxwow

doinxwow1#

迭代器是否在 同步列表 阻止“整个迭代过程(循环)”还是仅仅阻止它的方法?
只是它的方法。
类无法检测它是否在循环中使用。
如果需要为整个循环同步列表,请在列表上进行外部同步:

synchronized (list) {
  for (E element : list) { ... }
}

相关问题