logo

Java Threads | Как да създадете нишка в Java

Има два начина за създаване на нишка:

  1. Чрез разширяване на клас Thread
  2. Чрез прилагане на Runnable интерфейс.

Клас на нишка:

Класът Thread предоставя конструктори и методи за създаване и извършване на операции върху нишка. Класът Thread разширява класа Object и внедрява Runnable интерфейс.

Често използвани конструктори на клас Thread:

  • нишка()
  • Нишка (име на низ)
  • Нишка (Runnable r)
  • Нишка (Runnable r, име на низ)

Често използвани методи на клас Thread:

    публичен void run():се използва за извършване на действие за нишка.публично празно начало ():стартира изпълнението на нишката. JVM извиква метода run() на нишката.публичен празен сън (дълги милисекунди):Кара текущо изпълняваната нишка да заспи (временно да спре изпълнението) за определения брой милисекунди.публично празно присъединяване ():чака една нишка да умре.публично празно присъединяване (дълги милисекунди):изчаква нишка да умре за посочените милисекунди.public int getPriority():връща приоритета на нишката.public int setPriority(int приоритет):променя приоритета на нишката.публичен низ getName():връща името на нишката.public void setName(Име на низ):променя името на нишката.обществена нишка currentThread():връща препратката към текущо изпълняваната нишка.public int getId():връща идентификатора на нишката.публичен Thread.State getState():връща състоянието на нишката.публичен булев isAlive():тества дали нишката е жива.публичен невалиден доход():кара текущо изпълняващия обект на нишка да спре временно и да позволи на други нишки да се изпълнят.публично невалидно спиране():се използва за спиране на нишката (деприцирана).публично невалидно резюме():се използва за възобновяване на спряната нишка (деприцирана).публично спиране на невалидни():се използва за спиране на нишката (деприцирана).публичен булев isDaemon():тества дали нишката е демон нишка.public void setDaemon(boolean b):маркира нишката като демон или потребителска нишка.публично празно прекъсване():прекъсва нишката.публичен булев isInterrupted():тества дали нишката е била прекъсната.public static boolean interrupted():тества дали текущата нишка е била прекъсната.

Изпълняем интерфейс:

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

вмъкнете воден знак в word
    публичен void run():се използва за извършване на действие за нишка.

Стартиране на нишка:

The метод start(). клас Thread се използва за стартиране на новосъздадена нишка. Той изпълнява следните задачи:

  • Започва нова нишка (с нов стек за извиквания).
  • Нишката се премества от ново състояние в състояние Runnable.
  • Когато нишката получи шанс да се изпълни, нейният целеви метод run() ще се изпълни.

1) Пример за Java Thread чрез разширяване на клас Thread

Име на файл: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } } 

Изход:

 thread is running... 

2) Пример за Java Thread чрез внедряване на Runnable интерфейс

Име на файл: Multi3.java

форматиране на java низове
 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } } 

Изход:

 thread is running... 

Ако не разширявате класа Thread, вашият клас обект няма да се третира като обект на нишка. Така че трябва изрично да създадете обекта на клас Thread. Предаваме обекта на вашия клас, който имплементира Runnable, така че методът run() на вашия клас да може да се изпълни.

3) Използване на класа Thread: Thread(Име на низ)

Можем директно да използваме класа Thread, за да създадем нови нишки, използвайки дефинираните по-горе конструктори.

Име на файл: MyThread1.java

 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } } 

Изход:

 My first thread 

4) Използване на класа Thread: Thread(Runnable r, String name)

Спазвайте следната програма.

обект на java

Име на файл: MyThread2.java

 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } } 

Изход:

 My new thread Now the thread is running ...