Thread 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
執行緒是在程式中執行的執行緒。
[Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)]
public class Thread : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, 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 虛擬機器啟動時,通常會有單一非精靈執行緒 (,這通常會呼叫一些指定類別) 名為 main
的方法。 JAVA 虛擬機器會繼續執行執行緒,直到發生下列任一項為止: < ul >< li >exit
已呼叫 類別 Runtime
的 方法,且安全性管理員已允許執行結束作業。 <li > 不是精靈執行緒的所有線程都可以透過從方法的呼叫 run
傳回,或擲回傳播至方法以外的 run
例外狀況。 </ul>
有兩種方式可以建立新的執行緒執行。 其中一個是將類別宣告為 的 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>
另一種建立執行緒的方式是宣告實作 介面的 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 中新增。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
Thread() |
配置新的 |
Thread(Action) |
執行緒是在程式中執行的執行緒。 |
Thread(Action, String) |
執行緒是在程式中執行的執行緒。 |
Thread(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。 |
Thread(IRunnable) |
配置新的 |
Thread(IRunnable, String) |
配置新的 |
Thread(String) |
配置新的 |
Thread(ThreadGroup, Action) |
執行緒是在程式中執行的執行緒。 |
Thread(ThreadGroup, Action, String) |
執行緒是在程式中執行的執行緒。 |
Thread(ThreadGroup, Action, String, Int64) |
執行緒是在程式中執行的執行緒。 |
Thread(ThreadGroup, IRunnable) |
配置新的 |
Thread(ThreadGroup, IRunnable, String) |
配置新的 |
Thread(ThreadGroup, IRunnable, String, Int64) |
配置新的 |
Thread(ThreadGroup, IRunnable, String, Int64, Boolean) |
配置新的 |
Thread(ThreadGroup, String) |
配置新的 |
欄位
MaxPriority |
執行緒可以擁有的最大優先順序。 |
MinPriority |
執行緒可以擁有的最小優先順序。 |
NormPriority |
指派給執行緒的預設優先順序。 |
屬性
AllStackTraces |
傳回所有即時執行緒堆疊追蹤的對應。 |
Class |
傳回這個 |
ContextClassLoader |
傳回這個執行緒的內容 |
Daemon |
測試此執行緒是否為精靈執行緒。 -或- 將此執行緒標示為 #isDaemon 精靈執行緒或使用者執行緒。 |
DefaultUncaughtExceptionHandler |
傳回因未攔截例外狀況而突然終止執行緒時所叫用的預設處理常式。 -或- 設定執行緒因未攔截例外狀況而突然終止時叫用的預設處理常式,而且該執行緒未定義任何其他處理常式。 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
Id |
傳回這個執行緒的識別碼。 |
IsAlive |
測試此執行緒是否正在運作。 |
IsInterrupted |
測試此執行緒是否已中斷。 |
JniIdentityHashCode |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
JniPeerMembers |
執行緒是在程式中執行的執行緒。 |
Name |
傳回此執行緒的名稱。 -或- 將這個執行緒的名稱變更為等於引數 |
PeerReference |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
Priority |
傳回此執行緒的優先順序。 -或- 變更此執行緒的優先順序。 |
ThreadGroup |
傳回這個執行緒所屬的執行緒群組。 |
ThresholdClass |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
UncaughtExceptionHandler |
傳回此執行緒因未攔截例外狀況而突然終止時所叫用的處理常式。 -或- 設定此執行緒因未攔截例外狀況而突然終止時叫用的處理常式。 |
方法
ActiveCount() |
傳回目前線程 JAVA 中作用中線程數目的估計值。 |
CheckAccess() |
判斷目前執行中的執行緒是否具有修改此執行緒的許可權。 |
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
CountStackFrames() |
已淘汰.
計算此執行緒中的堆疊框架數目。 |
CurrentThread() |
傳回目前執行中線程物件的參考。 |
Destroy() |
已淘汰.
擲回 |
Dispose() |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
Dispose(Boolean) |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
DumpStack() |
將目前線程的堆疊追蹤列印至標準錯誤資料流程。 |
Enumerate(Thread[]) |
複製到指定的陣列中,目前線程群組及其子群組中的每個使用中線程。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetStackTrace() |
傳回堆疊追蹤專案的陣列,表示這個執行緒的堆疊傾印。 |
GetState() |
傳回這個執行緒的狀態。 |
HoldsLock(Object) |
|
Interrupt() |
中斷此執行緒。 |
Interrupted() |
測試目前的執行緒是否已中斷。 |
JavaFinalize() |
當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。 (繼承來源 Object) |
Join() |
等候此執行緒停止。 |
Join(Int64) |
等候最多 |
Join(Int64, Int32) |
等候最多 |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
OnSpinWait() |
表示呼叫端暫時無法進行,直到在其他活動發生一或多個動作為止。 |
Resume() |
已淘汰.
擲回 |
Run() |
如果使用個別 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
Sleep(Int64) |
讓目前執行的執行緒進入睡眠狀態 (暫時停止執行) 指定的毫秒數,受限於系統計時器和排程器的有效位數和精確度。 |
Sleep(Int64, Int32) |
讓目前執行的執行緒進入睡眠狀態 (暫時停止執行) 指定的毫秒數加上指定的奈秒數,受限於系統計時器和排程器的有效位數和精確度。 |
Start() |
導致此執行緒開始執行;JAVA 虛擬機器會呼叫 |
Stop() |
已淘汰.
擲回 |
Stop(Throwable) |
已淘汰.
擲回 |
Suspend() |
已淘汰.
擲回 |
ToArray<T>() |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
Wait() |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Yield() |
排程器的提示,表示目前線程願意產生其目前處理器的使用。 |
明確介面實作
IJavaPeerable.Disposed() |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
IJavaPeerable.Finalized() |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
IJavaPeerable.JniManagedPeerState |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
執行緒是在程式中執行的執行緒。 (繼承來源 Object) |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
執行緒是在程式中執行的執行緒。 |
GetJniTypeName(IJavaPeerable) |
執行緒是在程式中執行的執行緒。 |