Ответ
Нет, у одного и того же потока нельзя вызвать start() дважды. При повторном вызове будет выброшено исключение IllegalThreadStateException. Поток можно запустить только один раз — после завершения его работы или остановки, повторный запуск невозможен.
Если нужно выполнить код несколько раз, создайте новый экземпляр Thread и запустите его:
Thread thread = new Thread(() -> {
System.out.println("Running thread");
});
thread.start(); // OK
thread.start(); // IllegalThreadStateException
// Правильный вариант:
Thread newThread = new Thread(() -> {
System.out.println("New thread");
});
newThread.start(); // OK