2012-05-16 4 views
1

Можно создать дубликат:
Java: “implements Runnable” vs. “extends Thread”Какой способ создания потоков лучше?

Когда следует использовать:

class MyThread extends Thread { 
    public void run() { 
     System.out.println("Important job running in MyThread"); 
    } 

    public void run(String s) { 
     System.out.println("String in run is " + s); 
    } 
} 

над:

class MyRunnable implements Runnable { 
    public void run() { 
     System.out.println("Important job running in MyRunnable"); 
    } 
} 

Очевидно мы создаем т hese по-разному, но есть ли какая-то разница после их создания?

+0

Взгляните на http://stackoverflow.com/questions/541487/java-implements-runnable-vs-extends-thread –

+0

http://stackoverflow.com/a/541506/597657 –

ответ

0

Thread - это класс, который реализует интерфейс Runnable. По существу, это означает, что это допустимо:

Runnable runnable = new MyThread(); 
runnable.run(); 

Осуществляя Runnable, вы в основном должны реализовать метод run() для резьбы, чтобы выполнить его.

Кроме этого, я не знаю, о чем вы действительно спрашиваете.

+2

-1, [' Thread'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html) не является абстрактным классом, а ваш примерный код действительно запутан ('run()' vs. 'начать()'). –

+0

Извините, я действительно редактировал свой пост ... и нет ... Класс 'Runnable' имеет только метод' run() '. –

+0

@ TheEliteGentleman «Runnable» - это не класс :) –

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