Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
public class Main {
public static void main(String[] args) {
Thread t = new Thread(() -> {
String name = Thread.currentThread().getName();
System.out.println(name);
}, "cook");
t.run();
}
}main
- Ждать
cook:run()не запускает поток, поэтому задача выполняется вmain, иThread.currentThread()возвращает главный поток. - Ждать, что ничего не выведется, раз поток не запущен:
run()— обычный вызов, и задача сразу выполняется в вызвавшем потоке.
- Что выведет программа, если заменить
t.run()наt.start()? - Что будет, если вызвать
start()у одного потока дважды?