При запуске любой программы образуется, по крайней мере, один поток. В Java этот поток запускается при вызове метода main(). Для создания дополнительных потоков необходимо их запустить и назначить им определенные функции, после выполнения которых потоки автоматически будут завершены виртуальной машиной.
В Java для создания потока и назначения им функций есть два способа.
1) Первым из них является наследование от класса Thread
(входящего в пакет java.lang
) с последующим переопределением метода run()
на функцию, которую вы хотите назначить для потока.
public class ExampleThread extends Thread { public ExampleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); try { sleep((long)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println("= DONE: " + getName() + " ="); } }
Таким образом, происходит наследование от класса Thread с запуском переопределенного метода run().
Назначенная функция организует цикл, при котором на экран выводится строка, после чего программа останавливается на случайный интервал времени. После 10 итераций цикла на экран выводится слов "= DONE: name ="
, а поток завершается, так как функция закончила свое выполнение.
Создание потока:
public class TwoThreadsDemo { public static void main (String[] args) { new ExampleThread("Do it!").start(); new ExampleThread("Definitely not!").start(); } }
Результат выполнение main()
:
0 Do it! 0 Definitely not! 1 Definitely not! 2 Definitely not! 1 Do it! 2 Do it! 3 Do it! 3 Definitely not! 4 Do it! 4 Definitely not! 5 Do it! 5 Definitely not! 6 Do it! 7 Do it! 6 Definitely not! 8 Do it! 7 Definitely not! 8 Definitely not! 9 Do it! DONE! Do it! 9 Definitely not! = DONE: Definitely not! =Ресурс: www.devcolibri.com
Немає коментарів:
Дописати коментар