У меня большой объем данных, которые я должен обработать, и я хочу использовать многопоточный подход. Допустим, у меня есть 1_000_000 объектов, которые необходимо обработать, и у меня есть пул потоков размером 4 (8, 16).
Какова лучшая стратегия для распределения этой рабочей нагрузки? Я могу думать о 2 вещах:
- Каждый объект = 1 задача для службы исполнителя. Кажется, это худшее решение, даже по сравнению с обработкой всего в 1 потоке.
- Разделите общее количество объектов на количество рабочих. Например, в случае с 4 рабочими каждый получит 250 тыс. Объектов для обработки. Это очень просто, и мне кажется, что могут быть и другие варианты.
Пожалуйста, поделитесь своими мыслями и другими подходами (возможно, что-то с FJP может быть более эффективным)