Liste synchronisée Java pour la boucle

Documentation sur synchronizedList états qui,

Il est impératif que l'utilisateur de synchroniser manuellement sur la liste retournée lors de l'itération:

List list = Collections.synchronizedList(new ArrayList());
...
synchronized(list) {
    Iterator i = list.iterator(); //Must be in synchronized block
    while (i.hasNext())
    foo(i.next());
}

Le non respect de ces conseils peut entraîner un comportement non déterministe.

Cela semble assez clair, mais je voulais juste confirmer que pour chaque boucle est interdite. Par exemple, je ne peux pas faire quelque chose comme comme suit juste?

List<MyType> list = Collections.synchronizedList(new ArrayList(<MyType>));
...
synchronized(list){
    for(MyType m : list){
        foo(m);
        m.doSomething();
    }
}

source d'informationauteur user927476