logo

Метод Java Thread start().

The початок() метод класу потоку використовується для початку виконання потоку. Результатом цього методу є два потоки, які виконуються одночасно: поточний потік (який повертається від виклику до методу start) і інший потік (який виконує свій метод run).

Метод start() внутрішньо викликає метод run() інтерфейсу Runnable для виконання коду, указаного в методі run() в окремому потоці.

Початковий потік виконує такі завдання:

  • Це вказує на нову тему
  • Потік переходить із стану New State у стан Runnable.
  • Коли потік отримує можливість виконати, запускається його цільовий метод run().

Синтаксис

 public void start() 

Повернене значення

 It does not return any value. 

Виняток

IllegalThreadStateException - Цей виняток виникає, якщо метод start() викликається більше одного разу.

Приклад 1: шляхом розширення класу потоку

 public class StartExp1 extends Thread { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp1 t1=new StartExp1(); // this will call run() method t1.start(); } } 
Перевірте зараз

Вихід:

 Thread is running... 

Приклад 2: Реалізація Runnable Interface

 public class StartExp2 implements Runnable { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp2 m1=new StartExp2 (); Thread t1 =new Thread(m1); // this will call run() method t1.start(); } } 
Перевірте зараз

Вихід:

 Thread is running... 

Приклад 3: коли ви викликаєте метод start() більше одного разу

 public class StartExp3 extends Thread { public void run() { System.out.println('First thread running...'); } public static void main(String args[]) { StartExp3 t1=new StartExp3(); t1.start(); // It will through an exception because you are calling start() method more than one time t1.start(); } } 
Перевірте зараз

Вихід:

 First thread running... Exception in thread 'main' java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) at StartExp3.main(StartExp3.java:12)