Niekoniecznie. Pomiędzy tymi rozwiązaniami są dwie różnice.
Pierwsza mniej istotna jest taka, że kod do obsługi zakończenia działania wątku musisz wszczepić w kod realizowany przez wątek. Nie jest to najlepsze rozwiązanie ponieważ mieszasz dwie odpowiedzialności - biznesową i nazwijmy to "administracyjną". Pierwsza związana jest z obsługą zadania, druga z obsługą zakończenia pracy.
Druga różnica jest istotniejsza. W waszym, prostszym, przypadku obsługa zakończenia działania wątku jest realizowana przed jego rzeczywistym zakończeniem. Może to doprowadzić do sytuacji kiedy wątek w części biznesowej zakończy się poprawnie, ale w trakcie obsługi zakończenia wystąpi np. IllegalMonitorStateException ponieważ sięgasz do jakiś zablokowanych zasobów. Tym samym z jednej strony masz "prawidłowo" zakończony wątek, który się wysypał, a z drugiej ciężką do odnalezienia sytuację blokady.
W moim przykładzie mechanizm działania jest trochę inny. Działają tam dwa wątki. Pierwszy to wątek "biznesowy" reprezentowany przez instancję FutureTask, która jest wrapperem na rzeczywisty wątek biznesowy reprezentowany przez zmienną t. W momencie zakończenia działania metody t.run() zwracany jest rezultat - zwykłe "OK", ale może to być np. lista listenerów. Wraz ze zwróceniem wartości wątek kończy swoje działanie. Jednocześnie działa sobie drugi wątek, klasa Waiter, który posiada referencję do pierwszego wątku. W momencie gdy tamten zakończy swoje działanie, metoda isDone() zwróci true, pobiera on rezultat, wypisuje go na konsolę i kończy swoją działalność.
W efekcie choć listenery są wywoływane w osobnym wątku to ich obsługa jest odseparowana od wątku, którego zakończenia nasłuchujemy. Co więcej są one wywoływane już po rzeczywistym zakończeniu tamtego wątku.
Przypomina to sytuację, w której zamiast wierzyć na słowo mechanikowi, że wykonał dobrze pracę wynajmujesz niezależnego eksperta, który ocenia pracę mechanika. Pomimo trochę większego kosztu w postaci dodatkowego wątku "nadzorującego" masz gwarancję, że nie zostaniesz zrobiona w przysłowiowe bambuko.