logo

Метод на Java Thread start().

The начало() метод на клас нишка се използва за започване на изпълнението на нишка. Резултатът от този метод са две нишки, които се изпълняват едновременно: текущата нишка (която се връща от извикването към началния метод) и другата нишка (която изпълнява своя метод за изпълнение).

Методът start() вътрешно извиква метода run() на интерфейса Runnable, за да изпълни кода, указан в метода run() в отделна нишка.

Началната нишка изпълнява следните задачи:

  • Това показва нова тема
  • Нишката се премества от ново състояние в състояние 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)