Thread クラス
- [内容]
- Java の実行単位であるスレッドを制御するためのクラスです.スレッドを生成し,実行するには,2 つの方法があります.一つは,Thread を継承するクラス( Threadのサブクラス)を定義する方法であり,また,他の一つは,Runnable インタフェースを利用する方法です.
- [主な変数]
- public static final int MAX_PRIORITY
- スレッドが持つことができるプライオリティの最大値
- public static final int MIN_PRIORITY
- スレッドが持つことができるプライオリティの最小値
- public static final int NORM_PRIORITY
- スレッドが持つことができるプライオリティの通常値
- [コンストラクタ]
- public Thread()
- public Thread(Runnable target)
- public Thread(Runnable target, String name)
- public Thread(String name)
- public Thread(ThreadGroup group, Runnable target)
- public Thread(ThreadGroup group, Runnable target, String name)
- public Thread(ThreadGroup group, String name)
- group 指定すると,そのスレッドグループ中に Thread オブジェクトを作る.指定しないと,null となる.
- target 指定すると,その Runnable オブジェクトの run メソッドを使う Thread オブジェクトを作る.指定しないと null となり,run メソッドをいずれかで定義し,その run メソッドを実行するようにプログラム内で明示的に記述してやる必要がある.
- name Thread オブジェクトの名前であり,指定しないと,Thread-n ( n には番号が入る)といった名前が自動的に付けられる.
- [主なメソッド]
- public static Thread currentThread()
- 現在実行中のスレッドオブジェクトを返す
- public final String getName()
- スレッドの名前を返す
- public final int getPriority()
- スレッドのプライオリティを返す
- public final boolean isAlive()
- スレッドが生きているか否かを調べる
- public final void join() throws InterruptedException
- public final void join(long millis) throws InterruptedException
- public final void join(long millis, int nanos) throws InterruptedException
- 引数で与えられた時間だけ消滅するのを待つ.引数が 0,または,与えられない場合は,無限に待つ.
- public void run()
- この関数内にスレッドが実行する内容を記述する
- public final void setPriority(int newPriority)
- スレッドのプライオリティを変更する
- public static void sleep(long millis) throws InterruptedException
- public static void sleep(long millis, int nanos) throws InterruptedException
- 引数で与えられた時間だけ,現在実行中のスレッドの実行を休止する
- public void start()
- スレッドの実行を開始する
- public static void yield()
- 現在実行中のスレッドを一時的に停止し,他のスレッドの実行を可能にする
- [使用例]
- プログラム例は,start,setPriority,isAlive,join,run,sleep メソッド等の基本的な使用例です.
- プログラム例は,マルチスレッドを制御する例です.最初のスレッド *** がスタートしカウントを始めますが,50 カウントしたところでスレッド --- の実行が終了するまで待ちます.そして,スレッド --- の実行終了後に再びカウントを継続します.
- このプログラムでは,Runnable インタフェースと Graphics クラスを利用して,アニメーションを作成しています( 100 ms 毎に半径の異なる円を描画する).また,ボタンをクリックすることによって,スレッドの停止・開始の制御を行うことができます.
- [参照]
- Object,Runnable