クラス java.lang.Thread
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
クラス java.lang.Thread
java.lang.Object
|
+----java.lang.Thread
- public class Thread
- extends Object
- インタフェース Runnable
スレッドはプロセス内の、単一の逐次的なコントロールフローである。
これは単に次のことを意味する。プログラムの中で実行されている間、各スレッドに
は、開始点、スレッドの実行中常に発生する実行点、そして当然終了点が存在する。
スレッドオブジェクトは、マルチスレッドプログラミングの基本となる。
マルチスレッドプログラミングでは、一つのプログラムで、異なるタスクを実行するスレッドを同時に走らせることが可能になる。
新しい実行スレッドを生成するために、スレッドのサブクラスである新しい
クラスを宣言し、run()メソッドをこのスレッドで実行したいコードで上書きする。
次にスレッドサブクラスのインスタンスを生成し、そのインスタンスの
start()メソッドを呼び出す。 start()メソッドはスレッドを
生成し、run()メソッドを実行する。
例:
class PrimeThread extends Thread {
public void run() {
// compute primes...
}
}
To start this thread you need to do the following:
PrimeThread p = new PrimeThread();
p.start();
...
スレッドのもう1つの生成法として、Runnableインタフェースを使用する方法がある。
この方法では、Runnable インタフェースを実装しているすべてのオブジェクトが、
スレッド中で実行可能となる。例:
class Primes implements Runnable {
public void run() {
// compute primes...
}
}
このスレッドを開始させるためには、以下を行う必要がある:
Primes p = new Primes();
new Thread(p).start();
...
スレッドデーモン以外のすべてのスレッドが消滅するまで、仮想マシンは実行される。
run()メソッドが復帰したときか、または stop()メソッドが呼び出されたとき
スレッドは消滅する。
新しい Thread が生成されるとき、その親(つまり生成したスレッド)から
優先順位とデーモンフラグを継承する。
- 参照:
- Runnable
-
MAX_PRIORITY
- Thread が持つことができる最高位のプライオリティ。
-
MIN_PRIORITY
- スレッドが持つことができる最低位のプライオリティ。
-
NORM_PRIORITY
- スレッドに割り当てられるデフォルトプライオリティ。
-
Thread()
- 新しいスレッドを作成する。
-
Thread(Runnable)
- 指定されたターゲットの run() メソッドを実行する新しい
スレッドを作成する。
-
Thread(ThreadGroup, Runnable)
- ターゲットの run() メソッドを実行するスレッドグループで、
新しいスレッドを作成する。
-
Thread(String)
- 指定された名前で新しいスレッドを作成する。
-
Thread(ThreadGroup, String)
- 指定されたスレッドグループで、指定された名前を持つ新しいスレッドを作成する。
-
Thread(Runnable, String)
- 指定された名前で新しいスレッドを作成し、指定されたターゲットの
run() メソッドを実行する。
-
Thread(ThreadGroup, Runnable, String)
- 指定されたスレッドグループで、指定された名前を持つ新しいスレッドを作成し、
指定されたターゲットの run() メソッドを実行する。
-
activeCount()
- このスレッドグループ中の、現在のアクティブなスレッドの数を返す。
-
checkAccess()
- 現在のスレッドがこのスレッドを変更することが、許されているかどうか調べる。
-
countStackFrames()
- スレッド中のスタックフレームの数を返す。
-
currentThread()
- 現在実行しているスレッドオブジェクトへのリファレンスを返す。
-
destroy()
- クリーンアップせずスレッドを破壊する。
-
dumpStack()
- 現在のスレッドのスタックトレースを表示するための
デバッグプロシージャ。
-
enumerate(Thread[])
- 指定された配列へ、このスレッドグループのアクティブな各スレッドへの
リファレンスをコピーする。
-
getName()
- スレッドの名前を取得し、返す。
-
getPriority()
- スレッドのプライオリティを取得し、返す。
-
getThreadGroup()
- スレッドグループを取得し、返す。
-
interrupt()
- スレッドに中断を送る。
-
interrupted()
- 中断されたかどうか調べる。
-
isAlive()
- スレッドがアクティブであるかどうか示す論理型値を返す。
-
isDaemon()
- スレッドのデーモンフラグを返す。
-
isInterrupted()
- 他ののスレッドが中断されたかどうか調べる。
-
join(long)
- スレッドが消えるのを待つ。
-
join(long, int)
- より正確な時間でスレッドが消えるのを待つ。
-
join()
- このスレッドが消えるのを永久に待つ。
-
resume()
- スレッドの実行を再開する。
-
run()
- スレッドの実際のボディ。
-
setDaemon(boolean)
- スレッドデーモンまたはスレッドユーザであるという印をこのスレッドつける。
-
setName(String)
- スレッドの名前を設定する。
-
setPriority(int)
- スレッドのプライオリティを設定する。
-
sleep(long, int)
-
現在実行しているスレッドを、ミリ秒単位で指定されただけ
スリープさせる。
-
start()
- スレッドを開始する。
-
stop()
-
オブジェクトを捨ててスレッドを停止する。
-
stop(Throwable)
- オブジェクトを送りスレッドを停止する。
-
suspend()
- スレッドの実行をサスペンドする。
-
toString()
- スレッドの名前、プライオリティ、スレッドグループを含む、スレッドを
表現する文字列を返す。
-
yield()
- 現在実行しているスレッドオブジェクトに実行を停止させる。
MIN_PRIORITY
public final static int MIN_PRIORITY
- スレッドが持つことができる最低位のプライオリティ。プライオリティの最小値は1に等しい。
NORM_PRIORITY
public final static int NORM_PRIORITY
- スレッドに割り当てられるデフォルトプライオリティ。デフォルトプライオリティは5に等しい。
MAX_PRIORITY
public final static int MAX_PRIORITY
- Thread が持つことができる最高位のプライオリティ。スレッドが持つことができるプライオリティの最小値は10である。
Thread
public Thread()
- 新しいスレッドを作成する。このように生成されたスレッドは、実際に何か
行うために run()メソッドが上書きされている必要がある。
このメソッドの使い方の例を示す。
import java.lang.*;
class plain01 implements Runnable {
String name;
plain01() {
name = null;
}
plain01(String s) {
name = s;
}
public void run() {
if (name == null)
System.out.println("A new thread created");
else
System.out.println("A new thread with name " + name + " created");
}
}
class threadtest01 {
public static void main(String args[] ) {
int failed = 0 ;
Thread t1 = new Thread();
if(t1 != null) {
System.out.println("new Thread() succeed");
} else {
System.out.println("new Thread() failed");
failed++;
}
}
Thread
public Thread(Runnable target)
- 指定されたターゲットの run() メソッドを実行する新しい
スレッドを作成する。
- パラメータ:
- target - run()メソッドが呼び出されるオブジェクト
Thread
public Thread(ThreadGroup group,
Runnable target)
- ターゲットの run() メソッドを実行するスレッドグループで、
新しいスレッドを作成する。
- パラメータ:
- group - スレッドグループ
- target - run()メソッドが呼び出されるオブジェクト
Thread
public Thread(String name)
- 指定された名前で新しいスレッドを作成する。
- パラメータ:
- name - 新しいスレッドの名前
Thread
public Thread(ThreadGroup group,
String name)
- 指定されたスレッドグループで、指定された名前を持つ新しいスレッドを作成する。
- パラメータ:
- group - スレッドグループ
- name - 新しいスレッドの名前
Thread
public Thread(Runnable target,
String name)
- 指定された名前で新しいスレッドを作成し、指定されたターゲットの
run() メソッドを実行する。
- パラメータ:
- target - run() メソッドが呼び出されるオブジェクト
- name - 新しいスレッドの名前
Thread
public Thread(ThreadGroup group,
Runnable target,
String name)
- 指定されたスレッドグループで、指定された名前を持つ新しいスレッドを作成し、
指定されたターゲットの run() メソッドを実行する。
- パラメータ:
- group - スレッドグループ
- target - run() メソッドが呼び出されるオブジェクト
- name - 新しいスレッドの名前
currentThread
public static Thread currentThread()
- 現在実行しているスレッドオブジェクトへのリファレンスを返す。
yield
public static void yield()
- 現在実行しているスレッドオブジェクトに実行を停止させる。
他の実行可能なスレッドがある場合、次に
スケジュールされる。
sleep
public static void sleep(long millis,
int nanos) throws InterruptedException
- 現在実行しているスレッドを、ミリ秒単位で指定されただけ
スリープさせる。
- パラメータ:
- millis - スリープする時間の長さ。単位はミリ秒
- millis - ミリ秒単位でスリープする時間の長さ
- nanos - ナノ単位の追加のスリープ時間 0-999999
- 例外: InterruptedException
- 他のスレッドがこのスレッドを中断した場合。
public static native void sleep(long millis) throws InterruptedException;
/**
ミリ秒単位とナノ秒単位を加えた間だけスリープさせる。
- 例外: InterruptedException
- 他のスレッドがこのスレッドを中断した場合。
start
public synchronized void start()
- スレッドを開始する。これにより run() メソッドが呼び出される。
このメソッドは直ちに復帰する。
- 例外: IllegalThreadStateException
- スレッドが既に開始された場合。
- 参照:
- run, stop
run
public void run()
- スレッドの実際のボディ。このメソッドは、スレッドが開始した後に
呼び出される。スレッドクラスをサブクラス化してこのメソッドを
上書きするか、Runnable ターゲットを持つスレッドを
生成する必要がある。
- 参照:
- start, stop
stop
public final void stop()
- オブジェクトを捨ててスレッドを停止する。デフォルトでこのルーチンは、
ターゲットスレッドへの ThreadDeath の新しいインスタンスを捨てる。
ThreadDeath は実際は Exception のサブクラスではなく、Object の
サブクラスである。特殊なクリーンアップ操作をする必要がない限り、
ユーザは通常 ThreadDeath を捕らえようとすべきではない。
ThreadDeath を捕えた場合は、スレッドが実際に消滅するように、
オブジェクトを rethrow することが重要である。
トップレベルのエラーハンドラは、ThreadDeath が失敗するとき
メッセージを表示しない。
- 参照:
- start, run
stop
public final synchronized void stop(Throwable o)
- オブジェクトを送りスレッドを停止する。通常、ユーザは引数無しで
stop() メソッドを呼び出すべきである。しかし、スレッドを消すために
stop() メソッドを使用する例外的な状況では、他のオブジェクトが
送られる。ThreadDeath は実際は Exception のサブクラスではなく、
Throwable のサブクラスである。
- パラメータ:
- o - 送られる Throwable オブジェクト
- 参照:
- start, run
interrupt
public void interrupt()
- スレッドに中断を送る。
interrupted
public static boolean interrupted()
- 中断されたかどうか調べる。
isInterrupted
public boolean isInterrupted()
- 他ののスレッドが中断されたかどうか調べる。
destroy
public void destroy()
- クリーンアップせずスレッドを破壊する。つまりその状態を捨てるだけである;
ロックされていたモニタはロックされたままになる。最後の手段である。
isAlive
public final boolean isAlive()
- スレッドがアクティブであるかどうか示す論理型値を返す。アクティブな
スレッドがあるということは、スレッドが開始されて、まだ停止されていない
ことを意味する。
suspend
public final void suspend()
- スレッドの実行をサスペンドする。
resume
public final void resume()
- スレッドの実行を再開する。このメソッドは、suspend() が呼び出された後
のみ有効である。
setPriority
public final void setPriority(int newPriority)
- スレッドのプライオリティを設定する。
- 例外: IllegalArgumentException
- プライオリティが
MIN_PRIORITY, MAX_PRIORITY の範囲外である場合。
- 参照:
- MIN_PRIORITY, MAX_PRIORITY, getPriority
getPriority
public final int getPriority()
- スレッドのプライオリティを取得し、返す。
- 参照:
- setPriority
setName
public final void setName(String name)
- スレッドの名前を設定する。
- パラメータ:
- name - スレッドの新しい名前
- 参照:
- getName
getName
public final String getName()
- スレッドの名前を取得し、返す。
- 参照:
- setName
getThreadGroup
public final ThreadGroup getThreadGroup()
- スレッドグループを取得し、返す。
activeCount
public static int activeCount()
- このスレッドグループ中の、現在のアクティブなスレッドの数を返す。
enumerate
public static int enumerate(Thread tarray[])
- 指定された配列へ、このスレッドグループのアクティブな各スレッドへの
リファレンスをコピーする。
- 返り値:
- 配列に入れられたスレッドの数。
countStackFrames
public int countStackFrames()
- スレッド中のスタックフレームの数を返す。このメソッドが呼び出される時、
スレッドはサスペンドされている必要がある。
- 例外: IllegalThreadStateException
- スレッドがサスペンドされていない場合。
join
public final synchronized void join(long millis) throws InterruptedException
- スレッドが消えるのを待つ。ミリ秒単位でタイムアウトを指定できる。
0ミリ秒のタイムアウトは永久に待つことを
意味する。
- パラメータ:
- millis - ミリ秒単位での待つ時間
- 例外: InterruptedException
- もう一のスレッドがこのスレッドを中断した。
join
public final synchronized void join(long millis,
int nanos) throws InterruptedException
- より正確な時間でスレッドが消えるのを待つ。
- 例外: InterruptedException
- 他のスレッドがこのスレッドを中断した。
join
public final void join() throws InterruptedException
- このスレッドが消えるのを永久に待つ。
- 例外: InterruptedException
- 他ののスレッドがこのスレッドを中断した。
dumpStack
public static void dumpStack()
- 現在のスレッドのスタックトレースを表示するための
デバッグプロシージャ。
- 参照:
- printStackTrace
setDaemon
public final void setDaemon(boolean on)
- スレッドデーモンまたはスレッドユーザであるという印をこのスレッドつける。
システムで実行されているのがスレッドデーモンだけであるとき、
Java は終了する。
- パラメータ:
- on - そのスレッドがスレッドデーモンかどうかを定める
- 例外: IllegalThreadStateException
- スレッドがアクティブである場合。
- 参照:
- isDaemon
isDaemon
public final boolean isDaemon()
- スレッドのデーモンフラグを返す。
- 参照:
- setDaemon
checkAccess
public void checkAccess()
- 現在のスレッドがこのスレッドを変更することが、許されているかどうか調べる。
- 例外: SecurityException
- 現在のスレッドがこのスレッドグループをアクセスすることを許されない場合。
toString
public String toString()
- スレッドの名前、プライオリティ、スレッドグループを含む、スレッドを
表現する文字列を返す。
- オーバーライド:
- クラス Object の toString
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
本マニュアルに関する著作権および商標