Запуск потока
Для запуска потока на выполнение вы должны вызвать метод start:
public void start();
Как только приложение вызывает этот метод для объекта класса Thread или для объекта класса, реализующего интерфейс Runnable, управление получает метод run, определенный в соответствующем классе. В первом случае метод run должен быть определен в классе (ссылка на него указана конструктору класса Thread), создающем поток, а во втором - в классе, реализующем интерфейс Runnable.
Если метод run возвращает управление, запущенный поток завершает свою работу. Однако обычно метод run запускает бесконечный цикл, поэтому поток не завершит свое выполнение до тех пор, пока он не будет остановлен (или завершен) принудительно. Чтобы определить, запущен данный поток или нет, можно воспользоваться следующим методом:
public final boolean isAlive();