logo

Java スレッド start() メソッド

始める() スレッドクラスのメソッドは、スレッドの実行を開始するために使用されます。このメソッドの結果は、現在のスレッド (start メソッドへの呼び出しから戻る) ともう一方のスレッド (run メソッドを実行する) の 2 つのスレッドが同時に実行されることになります。

start() メソッドは内部で Runnable インターフェイスの run() メソッドを呼び出し、run() メソッドで指定されたコードを別のスレッドで実行します。

開始スレッドは次のタスクを実行します。

  • 新しいスレッドを統計します
  • スレッドは新規状態から実行可能状態に移行します。
  • スレッドが実行する機会を得ると、そのターゲットの 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: 実行可能インターフェイスの実装による

 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)