У меня есть несколько потоков в массиве. Все потоки работают на LinkedBlockingQueue. Каждый поток принимает элемент (который является именем файла) из очереди, считывает его зависимости (простой ввод-вывод) и добавляет эти зависимости в очередь, чтобы мы могли получить их зависимости. В какой-то момент очередь будет пустой (когда мы обнаружим все зависимости). Вопрос в том, как я могу проверить, ждут ли все потоки от элемента из очереди, и если да, то как мне их закончить? Я «взломал» его на работу, используя метод опроса (long timeout, TimeUnit unit), но я хочу завершить их из основного метода.Завершение потоков Java
EDIT: Я не могу завершить работу при условии, что очередь пуста, потому что сначала у нас может быть только один файл в очереди, а когда поток обрабатывает его, очередь пуста некоторое время, пока новый обнаружены зависимости.
Заранее спасибо.
Покажите нам код, пожалуйста. Не понимаю, почему поток не может обнаружить, что очередь пуста, а затем завершается? –