когда вы звоните run()
, вы делаете это в той же теме. Это просто вызов метода.
Когда вы вызываете start()
для запуска другого потока для вызова run()
Это одна из причин, по которой не стоит расширять Thread, а вместо этого реализовывать Runnable, который вы оборачиваете потоком. Это один из многих потенциальных источников путаницы.
Вот вам соответствующий тизер
static String name = "Peter Lawrey";
static String state = "Washington";
static String getName() {
return name;
}
static String getState() {
return state;
}
static class NamedThread extends Thread {
@Override
public void run() {
System.out.println(getName()+" - "+getState());
}
}
public static void main(String... args) throws InterruptedException {
new NamedThread().start();
}
печать
Thread-0 - RUNNABLE
Вы можете понять, почему?