logo

Потоки Java | Як створити потік в Java

Існує два способи створення потоку:

  1. Розширюючи клас Thread
  2. Шляхом реалізації інтерфейсу Runnable.

Клас потоку:

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

Зазвичай використовувані конструктори класу Thread:

  • Нитка()
  • Нитка (назва рядка)
  • Потік (Runnable r)
  • Потік (Runnable r, String name)

Зазвичай використовувані методи класу Thread:

    public void run():використовується для виконання дії для потоку.public void start():запускає виконання потоку. JVM викликає метод run() потоку.публічний сон (довгі мілісекунди):Примушує поточний потік засинати (тимчасово припиняти виконання) на вказану кількість мілісекунд.public void join():чекає, поки потік помре.public void join (довгі мілісекунди):чекає закінчення потоку протягом указаних мілісекунд.public int getPriority():повертає пріоритет потоку.public int setPriority(int priority):змінює пріоритет потоку.public String getName():повертає назву потоку.public void setName(String name):змінює назву потоку.public Thread currentThread():повертає посилання поточного потоку, що виконується.public int getId():повертає ідентифікатор потоку.public Thread.State getState():повертає стан потоку.public boolean isAlive():перевіряє, чи живий потік.публічний недійсний вихід():змушує об'єкт потоку, що виконується, тимчасово призупинити та дозволити іншим потокам виконуватися.public void suspend():використовується для призупинення потоку (позбавлено).публічне недійсне резюме():використовується для відновлення призупиненого потоку (depricated).public void stop():використовується для зупинки потоку (позбавлено).public boolean isDaemon():перевіряє, чи потік є потоком демона.public void setDaemon(boolean b):позначає потік як демон або потік користувача.public void interrupt():перериває нитку.public boolean isInterrupted():перевіряє, чи потік був перерваний.public static boolean interrupted():перевіряє, чи не було перервано поточний потік.

Запускний інтерфейс:

Інтерфейс Runnable має бути реалізований будь-яким класом, екземпляри якого призначені для виконання потоком. Виконуваний інтерфейс має лише один метод під назвою run().

рядок порівняти з java
    public void run():використовується для виконання дії для потоку.

Початок ланцюжка:

The метод start(). Клас Thread використовується для запуску новоствореного потоку. Він виконує такі завдання:

  • Починається новий потік (з новим стеком викликів).
  • Потік переходить із стану New у стан 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 шляхом реалізації інтерфейсу Runnable

Ім'я файлу: Multi3.java

python записує json у файл
 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(String Name)

Ми можемо безпосередньо використовувати клас 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)

Дотримуйтеся наступної програми.

0,0625 як частка

Ім'я файлу: 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 ...