Когда поток завершается, вы не можете запустить его еще раз, используя метод start ():
Исправление: вы можете вызывать Thread.start()
только один раз за каждый экземпляр, любой последующий вызоввызовет исключение, независимо от того, запущен ли поток или нет.
Разрешение «перезапуска» после его завершения (очевидно, это ошибка во время работы потока), потребует дополнительной логики, ибудет препятствовать тому, чтобы среда выполнения высвобождала ресурсы, такие как стек потоков (который представляет собой значительный объем памяти), до тех пор, пока экземпляр не будет собран мусором;как сейчас, их можно освободить, как только закончится поток.