в java нет множественного наследования. использование интерфейса даёт больше гибкости.
The majority of classes created that need to be run as a thread will implement Runnable since they probably are extending some other functionality from another class
http://www.javaworld.com/javaworld/jw-04-1996/jw-04-threads.html
Здравствуйте, Develop_with_pleasure, Вы писали:
D__>В чем разница при создании потоков этими путями:
D__>1) extends Thread
D__>2) implements Runnable
D__>Какая реальная выгода от использвания того или иного метода?
extends Thread при вызове старт создает и запускает системный поток — нить (на некоторых платформах — процесс).
Runnable интерфейс, реализация которого описывает некий алгоритм (читай поток команд), который может быть выполнен в нити. В одной нити может быть последовательно выполнено любое количество Runnable потоков. Это используется для оптмизации использования системных ресурсов — создания пула потоков, когда создается несколко нитей каждая из которых последовательно выполняет потоки команд.
в случае с
new Thread() {
public void run() {
// do some code
}
}.start()
и
new Thread(new Runnable() {
public void run() {
// do some code
}
}).start()
никакой принципиальной разницы нету, и лучше использовать первый вариант.
Здравствуйте, Develop_with_pleasure, Вы писали:
D__>В чем разница при создании потоков этими путями:
D__>1) extends Thread
D__>2) implements Runnable
D__>Какая реальная выгода от использвания того или иного метода?
Всех благодарю за участие!!!