Supongamos que tengo la clase siguiente:guava-libraries: ¿es Iterators.cycle() seguro para subprocesos?
public class Foo {
private List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5);
private Iterator<Integer> iterator = Iterators.cycle(list);
public void bar(){
Integer value = iterator.next();
doSomethingWithAnInteger(value);
}
}
Si una instancia de Foo se acessed simultáneamente por dos hilos, necesito que cada hilo obtiene un valor diferente de iterator.next()
. ¿El método bar()
debe sincronizarse? ¿O está garantizado que iterator.next()
es seguro para subprocesos?
En este ejemplo, estoy usando una ArrayList como Iterable subyacente. ¿La seguridad de subprocesos del iterador cíclico depende de la implementación iterable específica?
Gracias.