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



              

Класс Thread - часть 3


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

}

System.out.println("End of " + getName()); 

public static void main(String[] args)(

new TwoThreads2("HIP", "Thread 1").start(); 

new TwoThreads2("hop", "Thread 2").start(); 

System.out.println(); 

}

Третий вариант: класс TwoThreads3 реализует интерфейс Runnabie. Этот вариант записан в листинге 17.3. Здесь нельзя использовать методы класса Thread, но зато класс TwoThreads3 может быть расширением другого класса. Например, можно сделать его апплетом, расширив класс Applet или JAppiet.

Листинг 17.3.

Реализация интерфейса Runnabie

class TwoThreadsS implements Runnabie{ 

private String msg; 

TwoThreads3(String s){ msg = s; } 

public void run(){

forfint i = 0; i < 20; i++){ 

try{

Thread.sleep(100); 

}catch(InterruptedException ie){} 

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

}

System.out.println("End of thread."); 

public static void main (String[] args){

new Thread(new TwoThreads3("HIP"), "Thread 1").start (); 

new Thread(new TwoThreads3("hop"), "Thread 2").start (); 

System.out.println(); 

}

Чаще всего в новом подпроцессе задаются бесконечные действия, выполняющиеся на фоне основных действий: проигрывается музыка, на экране вращается анимированный логотип фирмы, бежит рекламная строка. Для реализации такого подпроцесса в методе run о задается бесконечный цикл, останавливаемый после того, как объект-подпроцесс получит значение null.

В листинге 17.4 показан четвертый вариант той же самой программы, в которой метод runt) выполняется до тех пор, пока текущий объект-подпроцесс th совпадает с объектом до, запустившим текущий подпроцесс. Для прекращения его выполнения предусмотрен метод stop (), к которому обращается главный подпроцесс. Это стандартная конструкция, рекомендуемая документацией J2SDK. Главный подпроцесс в данном примере только создает объекты-подпроцессы, ждет одну секунду и останавливает их.




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