Cette question concerne à la fois C# et JavaItère Collection Dans deux fils
Si vous avez une collection qui n'est pas modifiée et que la référence de collecte est partagé entre deux fils ce qui se passe lorsque vous itérer sur chaque thread ??
ThreadA: Collection.iterator ThreadA: Collection.moveNext ThreadB: Collection.iterator ThreadB: Collection.moveNext
Will ThreadB voir le premier élément?
L'itérateur est-il toujours réinitialisé lorsqu'il est demandé? Que se passe-t-il si cela est entrelacé, de sorte que movenext et l'élément sont entrelacés? Y a-t-il un danger que vous ne traitiez pas tous les éléments?
Il est préférable d'utiliser une BlockingQueue en Java. Ceci est conçu pour être partagé à travers un nombre quelconque de threads et peut être modifié pendant que vous lisez. –
Op's Q en un mot: "Est-ce que chaque itérateur de la même collection agit indépendamment les uns des autres?" –