У меня есть программа, для которой необходим цикл бесконечности. Причиной этого является то, что у меня есть потребитель SQS, который будет выделять поток для каждого получаемого сообщения, и именно здесь большая часть моей логики. К сожалению, потребитель SQS внутренне работает в другом потоке, который я не контролирую, поскольку лучшей реализацией было бы запустить его в основном потоке.Каков наилучший способ создания бесконечного цикла в java?
Мне нужен способ остановить запуск программы, пока потребитель жив, в настоящее время я использую цикл while со сном Thread, но я помню что-то об этом не очень хорошее решение.
Что было бы лучше, если бы программа была жива, если у вас есть ограничение, что у меня нет возможности изменить SQSConsumer.
Update: Программа не предназначена, чтобы остановить когда-либо, SQSConsumer раскрутит 10 потоков, которые тянут сообщения от службы, я хочу, чтобы продолжать делать это до тех пор, я не заставить программу выхода путем установки потребителя. isRunning() в false или путем принудительного завершения программы с помощью Ctrl + c.
Пример:
SQSConsumer consumer = new SQSConsumer((event) -> {
callSomeLogicHere(event);
});
while (consumer.isRunning()) {
Thread.sleep(100);
}
Цель многопоточности потерпела поражение – GurV
Можете ли вы дать более подробную информацию о своем классе SQSConsumer? – assylias