У меня есть ConcurrentStack, каждый элемент которого является URL-адресом некоторого веб-ресурса. Также у меня есть N потоков (на самом деле Tasks
), каждый из которых выталкивает один элемент из процесса стека и добавляет результат (результат - сбор) в этот стек или в другую очередь вывода в зависимости от некоторых критериев. Это нужно сделать, пока стек не станет пустым.Элементы стека процесса в нескольких потоках
Каков более элегантный способ распознать конец этого процесса и остановить выполнение этих задач? В других словах, как признать, что стек пуст, и нет выполнения задачи, которая будет добавить больше элементов в стек
Вы описываете, как работают потребители, но ваш вопрос касается производителей. – adrianm