Каков наиболее эффективный способ создания дополнительных потоков из потока?
Вопрос
Каков наиболее эффективный способ создания дополнительных потоков из потока?
контекст
Я изменяю дизайн приложения, чтобы сделать его более эффективным. Одним из самых больших улучшений будет запуск параллельных операций; однако я новичок в параллельном программировании. Сценарий, который я хочу улучшить, выглядит следующим образом:
У нас есть несколько торговых площадок, с которых можно импортировать заказы и затем загружать их в нашу систему ERP. Каждый рынок имеет несколько типов записей для импорта. В настоящее время это делается как MP->RT->RT->RT->RT
где базар (MP
), а затем последующие типы записей (RT
) добавлены.
То, что я хочу сделать, это поток:
MP
|-> RT
|-> RT
|-> RT
|-> RT
MP
|-> RT
|-> RT
...
где вызывается несколько торговых площадок, а затем одновременно добавляются несколько типов записей.
Я в настоящее время использую executor service
это контролирует MP
задачи, но я хочу знать лучший способ справиться RT
задачи.
1 ответ
Разве вы не можете отправить каждую задачу RT в ThreadPool (MT) и позволить им запускаться отдельно?
У вас может быть несколько исполнителей (ThreadPool - один из других, выберите тот, который больше всего соответствует вашим потребностям) или только один, и каждая задача RT может быть передана внутри них.