Thread クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
スレッドとは、プログラム内で実行されるスレッドです。
[Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)]
public class Thread : Java.Lang.Object, IDisposable, Java.Lang.IRunnable
[<Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)>]
type Thread = class
inherit Object
interface IRunnable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 継承
- 派生
- 属性
- 実装
注釈
スレッドとは、プログラム内で実行されるスレッドです。 Java仮想マシンを使用すると、アプリケーションで複数の実行スレッドを同時に実行できます。
すべてのスレッドに優先順位があります。 優先順位の高いスレッドは、優先順位の低いスレッドよりも優先して実行されます。 各スレッドは、デーモンとしてマークされる場合とマークされていない場合もあります。 一部のスレッドで実行されているコードが新しい Thread オブジェクトを作成する場合、新しいスレッドの優先度は最初は作成スレッドの優先度と同じに設定され、作成スレッドがデーモンの場合にのみデーモン スレッドになります。
Java仮想マシンが起動すると、通常、デーモン以外のスレッドが 1 つ存在します (通常は、指定されたクラスのmainという名前のメソッドを呼び出します)。 Java仮想マシンは、<ul><li>クラス exitのRuntime メソッドが呼び出され、セキュリティ マネージャーが終了操作の実行を許可するまで、スレッドを実行し続けます。
<li>デーモン スレッドではないすべてのスレッドは、 run メソッドの呼び出しから戻るか、 run メソッドを超えて伝播する例外をスローすることによって、停止しました。
</ul>
新しい実行スレッドを作成するには、2 つの方法があります。 1 つは、クラスを Thread のサブクラスとして宣言することです。 このサブクラスは、クラス runのThread メソッドをオーバーライドする必要があります。 その後、サブクラスのインスタンスを割り当てて開始できます。 たとえば、指定された値より大きい素数を計算するスレッドは、次のように記述できます: <hr><blockquote>
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
次のコードでは、スレッドを作成して実行を開始します。 <blockquote>
PrimeThread p = new PrimeThread(143);
p.start();
</blockquote>
スレッドを作成するもう 1 つの方法は、 Runnable インターフェイスを実装するクラスを宣言することです。 その後、そのクラスは run メソッドを実装します。 その後、クラスのインスタンスを割り当て、 Threadの作成時に引数として渡し、開始できます。 この他のスタイルの同じ例は、 <hr><blockquote のようになります。>
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
次のコードでは、スレッドを作成して実行を開始します。 <blockquote>
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
</blockquote>
すべてのスレッドには、識別用の名前があります。 複数のスレッドが同じ名前を持つ場合があります。 スレッドの作成時に名前が指定されていない場合は、新しい名前が生成されます。
特に明記されていない限り、このクラスのコンストラクターまたはメソッドに null 引数を渡すと、 NullPointerException がスローされます。
1.0 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| Thread() |
新しい |
| Thread(Action, String) |
|
| Thread(Action) |
|
| Thread(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
| Thread(IRunnable, String) |
新しい |
| Thread(IRunnable) |
新しい |
| Thread(String) |
新しい |
| Thread(ThreadGroup, Action, String, Int64) |
|
| Thread(ThreadGroup, Action, String) |
|
| Thread(ThreadGroup, Action) |
|
| Thread(ThreadGroup, IRunnable, String, Int64, Boolean) |
新しい |
| Thread(ThreadGroup, IRunnable, String, Int64) |
新しい |
| Thread(ThreadGroup, IRunnable, String) |
新しい |
| Thread(ThreadGroup, IRunnable) |
新しい |
| Thread(ThreadGroup, String) |
新しい |
フィールド
| 名前 | 説明 |
|---|---|
| MaxPriority |
スレッドに割り当てることができる最大優先度。 |
| MinPriority |
スレッドに割り当てることができる最小優先度。 |
| NormPriority |
スレッドに割り当てられる既定の優先度。 |
プロパティ
| 名前 | 説明 |
|---|---|
| AllStackTraces |
すべてのライブ スレッドのスタック トレースのマップを返します。 |
| Class |
この |
| ContextClassLoader |
このスレッドのコンテキスト |
| Daemon |
このスレッドがデーモン スレッドであるかどうかをテストします。 |
| DefaultUncaughtExceptionHandler |
キャッチされない例外が原因でスレッドが突然終了したときに呼び出される既定のハンドラーを返します。 または、キャッチされない例外が原因でスレッドが突然終了し、そのスレッドに対して他のハンドラーが定義されていない場合に呼び出される既定のハンドラーを設定します。 |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| Id |
このスレッドの識別子を返します。 |
| IsAlive |
このスレッドが有効かどうかをテストします。 |
| IsInterrupted |
このスレッドが中断されたかどうかをテストします。 |
| IsVirtual |
このスレッドが仮想スレッドの場合は、 |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| JniPeerMembers |
このJava ピアのメンバーを呼び出すために使用される JNI メタデータを取得します。 |
| Name |
このスレッドの名前を返します。 または、このスレッドの名前を引数 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| Priority |
このスレッドの優先度を返します。 |
| ThreadGroup |
このスレッドが属するスレッド グループを返します。 |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| UncaughtExceptionHandler |
キャッチされない例外が原因でこのスレッドが突然終了したときに呼び出されたハンドラーを返します。 または、キャッチされない例外が原因でこのスレッドが突然終了したときに呼び出されるハンドラーを設定します。 |
メソッド
| 名前 | 説明 |
|---|---|
| ActiveCount() |
現在のスレッドの java 内のアクティブなスレッドの数の推定値を返します。 |
| CheckAccess() |
現在実行中のスレッドに、このスレッドを変更するアクセス許可があるかどうかを判断します。 |
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| CountStackFrames() |
古い.
|
| CurrentThread() |
現在実行中のスレッド オブジェクトへの参照を返します。 |
| Destroy() |
古い.
|
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| DumpStack() |
現在のスレッドのスタック トレースを標準エラー ストリームに出力します。 |
| Enumerate(Thread[]) |
現在のスレッドのスレッド グループとそのサブグループ内のすべてのアクティブ スレッドを、指定した配列にコピーします。 |
| Equals(Object) |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| GetStackTrace() |
このスレッドのスタック ダンプを表すスタック トレース要素の配列を返します。 |
| GetState() |
このスレッドの状態を返します。 |
| HoldsLock(Object) |
現在のスレッドが指定したオブジェクトのモニター ロックを保持している場合にのみ、 |
| Interrupt() |
このスレッドを中断します。 |
| Interrupted() |
現在のスレッドが中断されているかどうかをテストします。 |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Join() |
このスレッドが死ぬまで待機します。 |
| Join(Int64, Int32) |
このスレッドが死ぬまで、最大 |
| Join(Int64) |
このスレッドが死ぬまで最大 |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| OnSpinWait() |
他のアクティビティの一部で 1 つ以上のアクションが発生するまで、呼び出し元が一時的に進行できないことを示します。 |
| Resume() |
古い.
|
| Run() |
このスレッドが別の |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| Sleep(Int64, Int32) |
システム タイマーとスケジューラの精度と精度に従って、現在実行中のスレッドを、指定したミリ秒数と指定したナノ秒数を加算してスリープ状態 (一時的に実行を停止) させます。 |
| Sleep(Int64) |
現在実行中のスレッドを、システム タイマーとスケジューラの精度と精度に従って、指定されたミリ秒数だけスリープ状態 (一時的に実行を停止) させます。 |
| Start() |
このスレッドが実行を開始します。Java仮想マシンは、このスレッドの |
| Stop() |
古い.
|
| Stop(Throwable) |
古い.
|
| Suspend() |
古い.
|
| ThreadId() |
このスレッドの識別子を返します。 |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
相互運用ランタイムからこのJava ピアの登録を解除します。 (継承元 Object) |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Yield() |
現在のスレッドがプロセッサの現在の使用を開始する予定であることをスケジューラに示すヒント。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| IJavaPeerable.Finalized() |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
スレッドとは、プログラム内で実行されるスレッドです。 (継承元 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
スレッドとは、プログラム内で実行されるスレッドです。 |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
スレッドとは、プログラム内で実行されるスレッドです。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|