|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Приложение, которое создает экземпляр Thread должен обеспечить код, который будет работать в том потоке. Есть два способа сделать это:
Runnable объект. Runnable интерфейс определяет единственный метод, run, предназначенный, чтобы содержать код, выполняемый в потоке. Runnable объект передают к Thread конструктор, как в Thread. Thread САМ class реализует Runnable, хотя run метод ничего не делает. Приложение может разделить на подклассы Thread, обеспечение его собственной реализации run, как в HelloThread пример:
public class HelloThread extends Thread {
public void run() {
System.out.println("Hello from a thread!");
}
public static void main(String args[]) {
(new HelloThread()).start();
}
}
Заметьте, что оба примера вызывают Thread.start чтобы начать новую дискуссию.
Какую из этих идиом следует использовать? Первая идиома, которая использует a Runnable возразите, является более общим, потому что Runnable объект может разделить на подклассы class кроме Thread. Вторую идиому легче использовать в простых приложениях, но ограничивается фактом, что Вашей задачей class должен быть потомок Thread. Этот урок сосредотачивается на первом подходе, который отделяется Runnable задача от Thread объект, который выполняет задачу. Мало того, что этот подход более гибок, но и это применимо к высокоуровневым API управления потоком, покрытым позже.
Thread class определяет много методов, полезных для управления потоком. Они включают static методы, которые предоставляют информацию о, или влияют на состояние, поток, вызывающий метод. Другие методы вызываются от других потоков, включенных в управление потоком и Thread объект. Мы исследуем некоторые из этих методов в следующих разделах.