Итак, у меня есть эта очень важная тема. Я начинаю, когда начинается программа. Поток слушает события, исходящие из более крупной системы, поскольку основная нить выполняет другие вещи. Нить не должна перестать работать, и если это так, ее следует воссоздать и начать.Текущий статус монитора
Я думаю, я знаю несколько способов для достижения этой цели, но я хотел бы знать ваше мнение по поводу некоторых вещей:
- Am Я просто стремлюсь ни за что? Я имею в виду, если я в идеале попытаюсь поймать весь код, который может пойти не так, будет ли нить когда-либо предавать меня по какой-либо очевидной причине?
- Что лучше всего делать, что я изложил? Периодически проверяйте состояние потока с помощью другого потока и ScheduledExecutor? Реализовать какую-то модель наблюдаемого наблюдателя?
Как это работает? Как «Исполнительная служба» прислушивается к событиям? –
Я думаю, что он имел в виду этот метод здесь: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html#afterExecute(java.lang.Runnable,%20java .lang.Throwable) Существует метод afterExecute, который можно использовать для выполнения действий при остановке потока. –
Я имел в виду, что Runnable должен работать, как описано в комментарии от @jameslarge. –