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 中添加。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
Thread() |
分配新的 |
Thread(Action) |
线程是程序中的执行线程。 |
Thread(Action, String) |
线程是程序中的执行线程。 |
Thread(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
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 支持 Mono for Android 基础结构,不应直接从代码中使用。 |
ThresholdType |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 |
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 <通知/em> 或 <em>interrupted</em>。<> (继承自 Object) |
Wait(Int64) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
Wait(Int64, Int32) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/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) |
线程是程序中的执行线程。 |