2005.10.17 株式会社四次元データ 宮澤了祐
マルチスレッドプログラミング 6章 スレッドクラスの変更点
- 6.1. Threadクラスの変更点
- 6.2. スタックトレースの取得
- 6.3. キャッチされない例外の取得
- 6.4. スレッドの状態の取得
- 6.5. 一ミリ秒未満のスリープ
6.4. スレッドの状態の取得
java.lang.Threadに新たに状態を表す列挙形のサブクラスが追加されました。
Threadの状態は次の6つです。
- NEW
起動していないスレッドの状態 - RUNNABLE
Java 仮想マシンで実行されているスレッドの状態 - BLOCKED
ブロックされ、モニターロックを待機しているスレッドの状態 - WAITING
ほかのスレッドが特定のアクションを実行するのを無期限に待機しているスレッドの状態 - TIMED_WAITING
指定された待機時間、ほかのスレッドがアクションを実行するのを待機しているスレッドの状態 - TERMINATED
終了したスレッドの状態
java.lang.Thread.getState()メソッドで取得します。
System.out.println(Thread.currentThread().getState());出力結果
RUNNABLE
6.5. 一ミリ秒未満のスリープ
Thread.sleep()に新たなメソッドが追加されました。
public static void sleep(long millis,int nanos)
第一引数でスリープするミリ秒を指定し、第二引数でスリープするナノ秒数を指定します。 第一引数と第二引数の合計数スレッドが停止します。 指定するナノ病は0潤オ999999の範囲内である必要があります。範囲外の場合、例外が発生します。
Thread.sleep(1000,1000);
また現在のLinux版JDKでは、1ミリ秒未満のスリープは意味がありません。