Czy legalne jest dwukrotne wywołanie metody start w tym samym wątku?

Poniższy kod prowadzi dojava.lang.IllegalThreadStateException: Thread already started kiedy zadzwoniłemstart() metodadrugi raz w programie.

updateUI.join();    

if (!updateUI.isAlive()) 
    updateUI.start();

Tak się dziejedruga czasupdateUI.start() jest nazywany. Przeszedłem przez to wiele razy i wątek jest wywoływany i kompletnie przechodzi do zakończenia przed trafieniemupdateUI.start().

PowołanieupdateUI.run() unika błędu, ale powoduje, że wątek działa w wątku interfejsu użytkownika (wątek wywołujący, jak wspomniano w innych postach na SO), co nie jest tym, czego chcę.

Czy może być nićzaczęło się tylko raz? Jeśli tak, to co mam zrobić, jeśli chcę ponownie uruchomić wątek? Ten konkretny wątek wykonuje pewne obliczenia w tle, jeśli nie robię tego w wątku, niż jest to robione w wątku interfejsu użytkownika, a użytkownik ma nierozsądnie długie oczekiwanie.

questionAnswers(10)

yourAnswerToTheQuestion