У меня есть этот параллельный шаблон, который возник при попытке смоделировать мою проблему, и я не знаю, есть ли название для него. Наличие ссылки на шаблон проектирования или что-то в этом роде может помочь мне реализовать его более безопасно.
Концепция:
Бригадир (основной поток) должен искать серию объектов в Большой склад.
Этот склад имеет n
этажей. У бригадира есть команда из n
рабочих (вспомогательных потоков), каждый с выделенным этажом.
Бригадир получает объект и просит каждого рабочего найти его.
Если рабочий находит его на своем этаже, они возвращаются к мастеру с соответствующей информацией. (местоположение, статус ...)
Затем бригадир перезванивает всем другим работникам (поскольку предмет был найден, больше нет необходимости в поиске) и переходит к следующему объекту.
Если все возвращаются, говоря «Нет, это не на моем этаже», мы можем действовать соответственно. (сообщить о пропущенном продукте руководству ...)
Основная проблема, с которой я столкнулся, заключается в том, что мне нужно убедиться, что потоки не тратят время на вычисления, когда элемент уже найден, и обеспечить надлежащую координацию.
Я также не могу дать каждому потоку полный список вещей, которые нужно найти, так как эта информация поступает по пунктам. (например, через сеть)