Готовый перевод Java: Concurrency / Java: Параллелизм: 2.1. Defining and Starting a Thread
Настройка и запуск потоков
Приложения, которые создают экземпляры класса Thread должны также предоставить код, который будет выполняться в потоке. Это можно сделать двумя способами:
* _Provide a `Runnable` object._ `Runnable` (http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html) который обязывает реализовать единственный метод `run`. Код в этом методе как раз и будет выполнятся в отдельном потоке. После того, как мы создали объект класса, реализующего интерфейс `Runnable` нам нужно передать этот объект конструктору класса `Thread` как в примере [``HelloRunnable``](examples/HelloRunnable.java):
*_Подкласс `Thread`. Класс `Thread` имплементирует интерфейс `Runnable`, хотя метод `run` ничего не делает. В приложении подкласс `Thread`, может иметь собственную реализвцию `run`, как показанно в примере [``HelloThread``](examples/HelloThread.java) :
Отметьте, что оба примера вызывают `Thread.start` для того чтобы запустить новый поток.
Какой из двух способов стоит использовать? Первый способ, который использует `Runnable` интерфейс, является более общим подходом, потому что объект который использует `Runnable` может быть подклассом не только `Thread`. Второй подход более легкий для использования в приложении, но имеет ограничения так как такой класс может быть только потомком `Thread`. В этом уроке мы сосредоточимся на использовании первого подхода, который разделяет `Runnable` задачу от объекта `Thread` который запускает задачу. Не только потому что этот подход более гибок, но и потому что это применимо к к высокого уровня API, который будет применяться далее.
Класс `Thread` определяет ряд методов, используемых для управления потоками. К ним относятся `статические` методы, которые обеспечивают информацию о потоке или изменяющих состояние, потока. Другие методы вызываются из других потоков, участвующих в управлении потоками и `Thread` объектами. В следующих разделах мы рассмотрим некоторые из этих методов .
Переведено на Нотабеноиде
http://notabenoid.org/book/43683/171670
Переводчики: moskitos80, maxpaint, baxi
Настройки
Готово:
