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, 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 |
测试此线程是否为守护程序线程。 - 或 - 将此线程标记为 #isDaemon 守护程序线程或用户线程。 |
| DefaultUncaughtExceptionHandler |
返回在线程因未捕获异常而突然终止时调用的默认处理程序。 - 或 - 设置在线程因未捕获异常而突然终止时调用的默认处理程序,并且尚未为该线程定义其他处理程序。 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| Id |
返回此线程的标识符。 |
| IsAlive |
测试此线程是否处于活动状态。 |
| IsInterrupted |
测试此线程是否已中断。 |
| IsVirtual |
如果此线程是虚拟线程,则返回 |
| 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, Int32) |
等待最多 |
| Join(Int64) |
等待最多 |
| Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
| NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
| OnSpinWait() |
指示调用方暂时无法进行,直到发生其他活动的一个或多个操作。 |
| Resume() |
已过时.
引发 |
| Run() |
如果此线程是使用单独的 |
| SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
| Sleep(Int64, Int32) |
使当前正在执行的线程睡眠(暂时停止执行),以指定的毫秒数加上指定的纳秒数,受系统计时器和计划程序精度和准确性的约束。 |
| Sleep(Int64) |
使当前正在执行的线程处于睡眠状态(暂时停止执行)的指定毫秒数,受系统计时器和计划程序精度和准确性的约束。 |
| Start() |
导致此线程开始执行;Java虚拟机调用 |
| Stop() |
已过时.
引发 |
| Stop(Throwable) |
已过时.
引发 |
| Suspend() |
已过时.
引发 |
| ThreadId() |
返回此线程的标识符。 |
| ToArray<T>() |
线程是程序中的执行线程。 (继承自 Object) |
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
线程是程序中的执行线程。 (继承自 Object) |
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><> (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <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) |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
线程是程序中的执行线程。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |