библиотеки guava: is Iterators. cycle () потокобезопасный?

Предположим, у меня есть следующий класс:

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);
    }  
}  

Если к экземпляру Foo обращаются одновременно два потока, мне нужно, чтобы каждый поток получал другое значение из iterator.next () . Нужно ли синхронизировать метод bar () ? Или iterator.next () гарантированно будет поточно-ориентированным?

В этом примере я использую ArrayList в качестве базового Iterable. Зависит ли потокобезопасность циклического итератора от конкретной итерируемой реализации?

Спасибо.

11
задан Buhake Sindi 20 December 2010 в 20:39
поделиться