Nie ma powodu, aby uruchamiać wątek w celu utworzenia konsumenta JMS i ustawienia jego nasłuchiwania komunikatów. Celem nasłuchiwania komunikatów JMS jest asynchroniczne odbieranie komunikatów (funkcja, którą z jakiegoś powodu próbujesz zduplikować).
Wystarczy utworzyć konsumenta JMS i ustawić nasłuchiwanie komunikatów, a następnie upewnić się, że konsument nie jest zamknięty. W zależności od tego, jak aplikacja jest napisana, czasami konieczne jest posiadanie while
pętla, aby upewnić się, że program nie zakończy działania, a zatem nie zamknie konsumenta. Twój wątek tego nie robi. Pozwala konsumentowi wyjść poza zakres po oczekiwaniu na wiadomości przez 5 sekund, co oznacza, że będzie zbierany śmieci i spodziewam się, że w przypadku większości implementacji JMS oznacza to, że zostanie zamknięty. Mogło być jednak gorzej. Nie zamykając konsumenta w sposób jawny i po prostu pozwalając mu wyjść poza zakres, możesz przeciekać konsumentów, co ostatecznie ugrzęźnie w twoim brokerze wiadomości. Jest to nie tylko niechlujne programowanie, ale potencjalnie problematyczne dla innych użytkowników próbujących konsumować wiadomości.