Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java.util.Collections.synchronizedList与Scala';阿斯卡拉转炉_Java_Scala - Fatal编程技术网

使用java.util.Collections.synchronizedList与Scala';阿斯卡拉转炉

使用java.util.Collections.synchronizedList与Scala';阿斯卡拉转炉,java,scala,Java,Scala,java.util.Collections.synchronizedList的JavaDoc说明如下 用户在对返回的列表进行迭代时,必须手动同步该列表: List list = Collections.synchronizedList(new ArrayList()); ... synchronized (list) { Iterator i = list.iterator(); // Must be in synchronized block while (i.hasNext())

java.util.Collections.synchronizedList的JavaDoc说明如下

用户在对返回的列表进行迭代时,必须手动同步该列表:

List list = Collections.synchronizedList(new ArrayList());
...
synchronized (list) {
  Iterator i = list.iterator(); // Must be in synchronized block
    while (i.hasNext())
      foo(i.next());
}
不遵循此建议可能会导致不确定性行为

现在我想知道当我在它上面和上面使用scala.collection.JavaConverters中的
.asScala
函数时会发生什么


转换器会在迭代过程中进行同步吗?还是我仍然需要自己进行同步?

.asScala
函数返回一个
scala.collection.mutable.Buffer
,它对同步没有任何作用

scala> Collections.synchronizedList(new util.ArrayList[Int]())
res0: java.util.List[Int] = []

scala> res0.asScala
res1: scala.collection.mutable.Buffer[Int] = Buffer()

您的问题的答案是,您必须注意同步。

.asScala
函数返回一个
scala.collection.mutable.Buffer
,它对同步没有任何作用

scala> Collections.synchronizedList(new util.ArrayList[Int]())
res0: java.util.List[Int] = []

scala> res0.asScala
res1: scala.collection.mutable.Buffer[Int] = Buffer()
您的问题的答案是,您必须注意同步