Я только сегодня начал изучать темы на Java. До сих пор я видел, как люди обычно используют 2 метода для их создания, но я не понимаю разницу между ними:Java; Разница между созданием Thread
1:
new Thread() {
@Override
public void run(){
//mycode goes here;
};
}.start();
2:
new Thread(new Runnable() {
@Override
public void run(){
//mycode goes here;
}
}).start();
Так почему люди используют new Runnable()
, если это не нужно? Это просто заставляет вас иметь метод run()
, но если вы создаете поток, то его нелогично не создавать метод запуска самостоятельно? Или я ошибаюсь?
Но зачем использовать new Runnable()
при создании анонимных тем? Как во втором примере выше? Поскольку я видел, что это некоторые тутуриалы, которые я нашел в Интернете. Я просто спрашиваю, есть ли причина сделать это или нет.
Я знаю, что тема может быть создана также другими способами: (! И я не говорю о внедрении против продления)
3:
Thread t1 = new Thread(new MyRunnable());
4:
MyThreadClass my1 = new MyThreadClass();
[Check this out] (https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html) Это объясняет, почему использование runnable является предпочтительным в нескольких сценариях. – Codebender
Возможный дубликат ["реализует Runnable" vs. "extends Thread"] (http://stackoverflow.com/questions/541487/implements-runnable-vs-extends-thread) – alex2410
Я не спрашиваю, что предпочитаю, я спрашивая, почему люди делают новый Runnable. Точно так же, как и на моих примерах, я хотел знать, существует ли разница между использованием Thread с конструктором new Runnable (я не говорю об использовании MyRunnables). – arccuks