Я создавал потоки исп. extends Thread, решил заменить его на Runnable. Но я использовал методы getState и getId, которых в интерфейсе нет.
Просто не очень понимаю, как внутри JDK устроены потоки, т.е. если я использую Thread thr = new Thread(), а потом thr.getState(), то мне кажется что он покажет мне state не того что мне нужен потока?
Обычно по классике делают так.
В классе, который имплементит Runnable, создают переменную private Thread thread;. Далее, в конструкторе этого же класса инициализируют ее вновь созданным потоком, передавая себя как параметр: this.thread = new Thread(this);. Создают getter для этой переменной: public Thread getThread() { return thread; }.
Можно тут же, в конструкторе, и запустить поток (если нужно): thread.start();. Или же потом, с помощью getter-a когда время придет... Так же, при помощи getter-a теперь можно доставать свойства и методы Thread-a.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости