Как использовать потоки в Java

Потоки позволяют программе выполнять несколько задач одновременно.

Жизненный цикл потока

  1. Новый
  2. Runnable
  3. Running
  4. Non-Runnable (Заблокировано)
  5. Завершено Жизненный цикл потока:
  • Новое: поток находится в новом состоянии, когда вы создаете экземпляр класса потока. Он остается в этом состоянии до вызова метода start () .

  • Runnable: Поток находится в рабочем состоянии после вызова метода start () , но этот поток не запланирован планировщиком.

  • Выполняется: поток переводится в состояние выполнения, как только планировщик потоков выбирает его.

  • Не запускается: в этом состоянии поток активен, но не работает.

  • Завершено: Поток находится в завершенном или мертвом состоянии, когда его метод run () завершается.

Как создавать потоки

Существует два метода создания потоков:

  1. Использование класса Thread

  2. Использование исполняемого интерфейса

Thread Class

i) Создать класс потока:

  открытый класс Myclass расширяет поток  

ii) Переопределить run () метод:

  public void run (  );  

iii) Создайте объект класса:

  MyThread obj = new MyThread ();   

iv) Вызов метода start () :

  obj.start ();  

  class MyThread расширяет поток {public void run () {System.out.println ("Поток выполняется ...");  } public static void main (String args []) {MyThread obj = new MyThread ();  obj.start ();  }} 

Использование исполняемого интерфейса:

i) Создайте класс потока:

  открытый класс MyThread реализует Runnable  

ii) Переопределите метод run () :

  public void run ();  

Примечание : мы можем также используйте @override для переопределения run().

iii) Создайте объект класса:

  Тема t = новая тема (new MyThread ());  

Примечание : мы используем new дважды, потому что класс MyThread не расширяет класс потока. Мы также можем написать то же самое:

  Runnable r = new MyThread ();  Thread t = new Thread (r);  

iv) Вызов метода start ():

  t.start ();   

Примечание : мы используем исполняемый интерфейс, потому что, если класс уже является дочерним по отношению к своему родительскому классу, он не может расширять класс потока. Следовательно, он может реализовать исполняемый интерфейс.

 класс MyThread реализует Runnable {public void run () {System.out.println ("Thread is running ...");  } public static void main (String args []) {MyThread r = new MyThread ();  Тема t = новая тема (r);  t.start ();  }} 

Сходства между классом потока и исполняемым интерфейсом:

  1. Они создают уникальный объект класса.
  2. Они должны переопределить метод run ()
Оцените статью
nanomode.ru
Добавить комментарий