Иллюстрированный самоучитель по Java



              

Класс Thread


В классе Thread семь конструкторов:

Thread(ThreadGroup group, Runnabie target, String name)

— создает ПОД-процесс с именем name, принадлежащий группе group и выполняющий метод run о объекта target. Это основной конструктор, все остальные обращаются к нему с тем или иным параметром, равным null;

Thread ()

— создаваемый подпроцесс будет выполнять свой метод run ();

Thread(Runnabie target);

Thread(Runnabie target, String name);

Thread(String name);

Thread(ThreadGroup group, Runnabie target);

Thread(ThreadGroup group, String name).

Имя подпроцесса name не имеет никакого значения, оно не используется, виртуальной машиной Java и применяется только для различения подпроцессов в программе.

После создания подпроцесса его надо запустить методом start (). Виртуальная машина Java начнет выполнять метод run () этого объекта-подпроцесса.

Подпроцесс завершит работу после выполнения метода run (). Для уничтожения объекта-подпроцесса вслед за этим он должен присвоить значение null.

Выполняющийся подпроцесс можно приостановить статическим методом sleep (long ms) на ms миллисекунд. Этот метод мы уже использовали в предыдущих главах. Если вычислительная система может отсчитывать наносекунды, то можно приостановить подпроцесс с точностью до наносекунд методом sleep(long ms, int nanosec).

В листинге 17.1 приведен простейший пример. Главный подпроцесс создает два подпроцесса с именами Thread i и Thread 2, выполняющих один и тот же метод run (). Этот метод просто выводит 20 раз текст на экран, а затем сообщает о своем завершении.

Листинг 17.1.

Два подпроцесса, запущенных из главного подпроцесса

class OutThread extends Thread{ 

private String msg; 

OutThread(String s, String name){

super(name); msg = s; 

public void run()

{

for(int i = 0; i < 20; i++){ 

// try{

// Thread.sleep(100); 

// }catch(InterruptedException ie){}

System.out.print(msg + " "); 




Содержание  Назад  Вперед