Лучшая практика - остановить поток при завершении очереди обработки sh - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь понять, что было бы лучше, чтобы иметь поток, который гарантирует, что сообщения в очереди выполняются синхронно, и он завершает себя, когда у него больше нет сообщений для обработки.

Я читал документацию по Handler и ServiceExecutor и обнаружил Метод отправки ExecutorService возвращает объект Future, из которого я мог бы вызвать Future.get () , но тогда мне нужно было бы заметить другой поток, когда закончится выполнение Runnable. Также на Executor's do c у них есть пример SerialExecutor, где я думаю, что я мог бы проверить размер очереди, чтобы завершить sh поток.

Честно говоря, я думаю, что должен быть лучший способ добиться такого поведения, поэтому мне было интересно, какой из этих методов лучше всего использовать.

Редактировать:

У меня не все сообщения сразу, поэтому я не знаю, когда поток остановится или пока я не хочу заставить его стоп. Если нет, я бы хотел продолжить работу до тех пор, пока он не завершит обработку всех сообщений.

...