Несколько потоков, перебирающих одну и ту же карту

Недавно я писал параллельную программу на Java и столкнулся с дилеммой: предположим, у вас есть глобальная структура данных, которая является частью обычной несинхронизированной, неконкурентной библиотеки, такой как HashMap. Можно ли позволить нескольким потокам выполнять итерацию по коллекции (только чтение, без изменений), возможно, в разные периоды чередования, т.е. поток 1 может быть на полпути к итерации, когда поток 2 получает свой итератор на той же карте?

8
задан Bober02 8 March 2012 в 10:32
поделиться