這個問題既涉及C#和Java遍歷集合在兩個線程
如果您有沒有被修改的集合,該集合引用兩個線程,當你遍歷每個線程上發生的事情之間共享?
的ThreadA:Collection.iterator 的ThreadA:Collection.moveNext ThreadB:Collection.iterator ThreadB:Collection.moveNext
威爾threadB看到的第一個元素?
迭代器是否在請求時總是復位?如果這是交錯的,那麼會發生什麼情況,所以movenext和item是交錯的?有沒有處理所有元素的危險?
在Java中使用BlockingQueue會更好。這是設計爲可以在任意數量的線程中共享的,並且可以在您閱讀時進行修改。 – 2010-04-11 09:16:01
Op's Q簡而言之:「來自同一個集合的每個迭代器是否彼此獨立運行?」 – 2010-04-11 12:23:38