Вот эта вещь.
Во-первых, у меня есть пул потоков в Java (например, у пула потоков 8 потоков).
Во-вторых, у меня есть другой поток монитора, чтобы ограничить то, что время выполнения каждого потока в этом пуле не может превышать 5 минут с помощью метода future.cancel ().
Однако я выясняю потенциальный беспорядок в ситуации ниже.
Предположим, что поток t1 в этом пуле выполнен более 5 минут, и поток мониторинга наблюдал эту ситуацию.
В то же время поток t1 завершил свою текущую вычислительную задачу и принял еще одну новую вычислительную задачу; Поток монитора вызывает файл future.cancel () для отправки сигнала прерывания в поток t1.
К сожалению, поток t1 проверяет свой сигнал прерывания и отменяет это новое задание, чего мы не ожидаем.
Вопрос в том, как избежать этой ситуации? Любой совет?