logo

Концепция на нишка в Java

Преди въвеждането на концепция за нишка , не успяхме да изпълним повече от една задача паралелно. Това беше недостатък и за да се премахне този недостатък, Концепция на нишката беше въведена.

А Нишка е много лек процес, или можем да кажем, най-малката част от процеса, която позволява на програмата да работи по-ефективно, като изпълнява множество задачи едновременно.

масив от обекти java

За да изпълняваме сложни задачи във фонов режим, използвахме Концепция на нишка в Java . Всички задачи се изпълняват, без да се засяга основната програма. В програма или процес всички нишки имат свой собствен отделен път за изпълнение, така че всяка нишка на процеса е независима.

Концепция на нишка в Java

Друга полза от използването резба е, че ако една нишка получи изключение или грешка по време на нейното изпълнение, това не засяга изпълнението на другите нишки. Всички нишки споделят обща памет и имат собствен стек, локални променливи и програмен брояч. Когато няколко нишки се изпълняват паралелно по едно и също време, този процес е известен като Многопоточност .

По прост начин нишката е:

  • Функция, чрез която можем да извършваме множество дейности в рамките на един процес.
  • Лек процес.
  • Серия от изпълнени оператори.
  • Вложена последователност от извиквания на метод.

Модел на резбата

Точно като процес, една нишка съществува в няколко състояния. Тези състояния са както следва:

Концепция на нишка в Java

1) Нов (готов за работа)

Има нишка Нов когато получи процесорно време.

2) Бягане

Има нишка a Бягане състояние, когато е в процес на изпълнение.

3) Прекъснато

Нишка е в Спряно състояние, когато е временно неактивен или в процес на изпълнение.

4) Блокиран

Нишка е в блокиран състояние, когато чака ресурси.

5) Прекратено

Една нишка идва в това състояние, когато в даден момент спре изпълнението си незабавно.

Създаване на нишка

Нишка се създава или чрез „създаване или внедряване“ на Работим интерфейс или чрез разширяване на Клас нишка . Това са единствените два начина, чрез които можем да създадем нишка.

Нека се потопим в подробности за двата начина за създаване на нишка:

връщане на масив java

Клас нишка

А Клас нишка има няколко метода и конструктори, които ни позволяват да извършваме различни операции върху нишка. Класът Thread разширява Обект клас. The Обект класът изпълнява Работим интерфейс. Класът нишка има следните конструктори, които се използват за извършване на различни операции.

    нишка() Нишка (изпълнима, име на низ) Нишка (изпълнима цел) Нишка (група ThreadGroup, цел за изпълнение, име на низ) Нишка (група ThreadGroup, цел за изпълнение) Нишка (група ThreadGroup, име на низ) Нишка (група ThreadGroup, изпълняваема цел, име на низ, дълъг размер на стека)

Runnable Interface (run() метод)

Изисква се интерфейсът Runnable да бъде реализиран от този клас, чиито екземпляри са предназначени да бъдат изпълнени от нишка. Изпълняемият интерфейс ни дава тичам () метод за извършване на действие за нишката.

метод start().

Методът се използва за стартиране на нишка, която сме създали наскоро. Стартира нова нишка с нов стек за извиквания. След изпълнение на начало() метод, нишката променя състоянието от New на Runnable. Той изпълнява метод run(). когато нишката получи правилното време да я изпълни.

Нека вземем пример, за да разберем как можем да създадем a Java нишка чрез разширяване на класа Thread:

ThreadExample1.java

 // Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } } 

Изход:

Концепция на нишка в Java

Създаване на нишка чрез внедряване на работещ интерфейс

В Java можем също да създадем нишка, като имплементираме интерфейса, който може да се изпълнява. Изпълняемият интерфейс ни предоставя както метода run(), така и метода start().

Нека вземем пример, за да разберем как можем да създадем, стартираме и стартираме нишката, използвайки интерфейса, който може да се изпълнява.

подготви се за тест mockito

ThreadExample2.java

 class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created
' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } } 

Изход:

Концепция на нишка в Java

В горния пример изпълняваме Multithreading чрез внедряване на изпълняваем интерфейс. За да научите повече за Multithreading, Натисни тук .