2016-06-20 4 views
-5

Этот код работает корректно без ошибок входа или синтаксиса; Зачем?Я задаюсь вопросом, почему «новая тема (новая тема(),« строка »); корректно работает

Умышленно не был выполнен метод run().

public class Sample { 
    public static void main(String[] args) { 
     Thread thread = new Thread(new Thread(),"Name"); 
     thread.start(); 
    } 
} 
+4

Зачем нужна ошибка * login *? –

+0

Утверждение о том, что «без запуска было выполнено», неверно. –

+2

«Правильно ли работает?» Что ты имеешь в виду? Программа только _correct_, если она делает то, что она должна делать. Что вы намерены делать этой программе? –

ответ

0

Если вы посмотрите на реализацию класса Thread он пробежал по умолчанию() метод, как показано ниже, @Override общественности недействительным запуска() { если (цель! = NULL) { target.run (); } }

Это показывает, если цель равна нулю, то ничего не делать и завершения вызова метода, то же самое происходит с вашим кодом, вы не предоставили каких-либо осуществление запуска() метод поэтому по умолчанию это выполняется,

1

run() в Thread пусто, но она по-прежнему существует. Вы начинаете поток, ему нечего делать (из-за отсутствия метода run() с доступной логикой), и он завершится. В вашем примере приведен пример Thread как параметр Runnable.

Синтаксис верен, но, естественно, никакая программа не запускает пустые потоки, поэтому это логическая ошибка.

Смежные вопросы