Проблемы в деталях
Вызывает ли это какую-либо проблему при использовании структуры данных, например, ArrayBlockingQueue<ArrayList<MyClass>>
с несколькими потоками?
Фон
На высоком уровне,Я пытаюсь добиться того, чтобы у меня был один продюсер, который создаст гигантский список.Для того, чтобы ускорить обработку.Я решил использовать несколько потребителей (потоков), потребляющих гигантский список, созданный производителем.
My Proposal Solution
Я буду преобразовывать гигантский список в несколько сравнительно меньших списков, и для обеспечения его поточной безопасности я приведу эти меньшие списки в параллельную структуру данных.Таким образом, в многопоточном сценарии каждый поток просто опрашивает параллельную очередь, чтобы получить один список и работать над ним.
Постановка проблемы
В многопоточном сценарии я понимаю, что мы должны использовать параллельную структуру данных, чтобы избежать взаимного влияния потоков и построить отношение до появления.
Но будет ли безопасно использование не-поточно-ориентированной структуры данных в качестве элемента поточно-ориентированной структуры данных?
Будет ли это вызыватькакие-либо проблемы при использовании структуры данных, например, ArrayBlockingQueue<ArrayList<MyClass>>
с несколькими потоками?
- Повлияет ли это на производительность?