Java: Concurrency / Java: Параллелизм: 2.1. Defining and Starting a Thread
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Настройка и запуск потоков moskitos80 27.01.14 в 07:24 |
|
|
Приложения, которые создают экземпляры класса Thread должны также предоставить код, который будет выполняться в потоке. Это можно сделать двумя способами: moskitos80 27.01.14 в 07:25 |
||
|
* _Provide a `Runnable` object._ `Runnable` (http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html) который обязывает реализовать единственный метод `run`. Код в этом методе как раз и будет выполнятся в отдельном потоке. После того, как мы создали объект класса, реализующего интерфейс `Runnable` нам нужно передать этот объект конструктору класса `Thread` как в примере [``HelloRunnable``](examples/HelloRunnable.java): moskitos80 27.01.14 в 07:38 |
||
|
*_Подкласс `Thread`. Класс `Thread` имплементирует интерфейс `Runnable`, хотя метод `run` ничего не делает. В приложении подкласс `Thread`, может иметь собственную реализвцию `run`, как показанно в примере [``HelloThread``](examples/HelloThread.java) : maxpaint 02.06.14 в 22:38 |
||
|
Отметьте, что оба примера вызывают `Thread.start` для того чтобы запустить новый поток. baxi 20.02.14 в 18:02 |
||
|
Какой из двух способов стоит использовать? Первый способ, который использует `Runnable` интерфейс, является более общим подходом, потому что объект который использует `Runnable` может быть подклассом не только `Thread`. Второй подход более легкий для использования в приложении, но имеет ограничения так как такой класс может быть только потомком `Thread`. В этом уроке мы сосредоточимся на использовании первого подхода, который разделяет `Runnable` задачу от объекта `Thread` который запускает задачу. Не только потому что этот подход более гибок, но и потому что это применимо к к высокого уровня API, который будет применяться далее. maxpaint 03.06.14 в 09:16 |
||
|
Класс `Thread` определяет ряд методов, используемых для управления потоками. К ним относятся `статические` методы, которые обеспечивают информацию о потоке или изменяющих состояние, потока. Другие методы вызываются из других потоков, участвующих в управлении потоками и `Thread` объектами. В следующих разделах мы рассмотрим некоторые из этих методов . maxpaint 03.06.14 в 09:21 |
