несколько очередей и потоков / конвейер ETL - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть следующие настройки:

ManagerThread.create tasks(500) -> q1
q1 -> [thread 1-4] -> q2 -> [thread 5-8] -> q3 -> [thread 9-12]
  • потоки стеков подпитывают друг друга
  • Я хочу знать количество обработанных задач для каждого [thread stack], чтобыУ меня может быть общий прогресс в работе, составляющий 500 задач. Моя идея до сих пор: разделить целое число между каждым [thread stack] и потоком менеджера, поэтому, если задача потока 1 выполнена -> shared int++ Если [thread 1-4] shared int = 500, Менеджер Остановите этот поток стека.Поэтому мой вопрос не в том, как остановиться, а в том, как поделиться этим целым числом наилучшим (наиболее эффективным) способом.Спасибо за идеи.
...