Thread 类

定义

线程是程序中的执行线程。

[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
继承
Thread
派生
属性
实现

注解

线程是程序中的执行线程。 Java 虚拟机允许应用程序同时运行多个执行线程。

每个线程都有优先级。 优先级较高的线程优先于优先级较低的线程执行。 每个线程也可能标记为守护程序,也可能不标记为守护程序。 当某个线程中运行的代码创建新 Thread 对象时,新线程的优先级最初设置为等于创建线程的优先级,并且仅在创建线程为守护程序时才是守护程序线程。

当 Java 虚拟机启动时,通常有一个非守护程序线程 (通常调用一些指定类) 命名 main 的方法。 Java 虚拟机将继续执行线程,直到发生以下任一情况:<ul><li>类exitRuntime的 方法已调用,并且安全管理器已允许执行退出操作。 <li>所有不是守护程序线程的线程都因从调用 run 方法返回或通过引发在 方法之外 run 传播的异常而终止。 </ul>

有两种方法可以创建新的执行线程。 一种是将类声明为 的 Thread子类。 此子类应重写 runThread的 方法。 然后,可以分配并启动子类的实例。 例如,计算大于指定值的质数的线程可以按如下方式编写: <hr><blockquote>

class PrimeThread extends Thread {
                    long minPrime;
                    PrimeThread(long minPrime) {
                        this.minPrime = minPrime;
                    }

                    public void run() {
                        // compute primes larger than minPrime
                        &nbsp;.&nbsp;.&nbsp;.
                    }
                }

</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
                        &nbsp;.&nbsp;.&nbsp;.
                    }
                }

</blockquote><hr>

然后,以下代码将创建一个线程并启动它运行: <blockquote>

PrimeRun p = new PrimeRun(143);
                new Thread(p).start();

</blockquote>

每个线程都有一个用于标识的名称。 多个线程可能具有相同的名称。 如果在创建线程时未指定名称,则会为其生成新名称。

除非另有说明,否则 null 将参数传递给此类中的构造函数或方法将导致 NullPointerException 引发 。

在 1.0 中添加。

java.lang.ThreadJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

Thread()

分配新的 Thread 对象。

Thread(Action)

线程是程序中的执行线程。

Thread(Action, String)

线程是程序中的执行线程。

Thread(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

Thread(IRunnable)

分配新的 Thread 对象。

Thread(IRunnable, String)

分配新的 Thread 对象。

Thread(String)

分配新的 Thread 对象。

Thread(ThreadGroup, Action)

线程是程序中的执行线程。

Thread(ThreadGroup, Action, String)

线程是程序中的执行线程。

Thread(ThreadGroup, Action, String, Int64)

线程是程序中的执行线程。

Thread(ThreadGroup, IRunnable)

分配新的 Thread 对象。

Thread(ThreadGroup, IRunnable, String)

分配一个新的 Thread 对象,使其具有 target 作为其运行对象,将指定的 name 作为其名称,并且属于 引用的 group线程组。

Thread(ThreadGroup, IRunnable, String, Int64)

分配一个新的 Thread 对象,使其具有 target 作为其运行对象,将指定的 name 作为其名称,并属于 引用的 group线程组,并具有指定的 堆栈大小

Thread(ThreadGroup, IRunnable, String, Int64, Boolean)

分配一个新的 Thread 对象,使其具有 target 作为其运行对象,具有指定的 name 作为其名称,属于引用的 group线程组,具有指定的 stackSize,并且继承 InheritableThreadLocal 可继承线程本地变量的初始值(如果 inheritThreadLocalstrue)。

Thread(ThreadGroup, String)

分配新的 Thread 对象。

字段

MaxPriority

线程可以具有的最大优先级。

MinPriority

线程可以具有的最低优先级。

NormPriority

分配给线程的默认优先级。

属性

AllStackTraces

返回所有实时线程的堆栈跟踪映射。

Class

返回此 Object的运行时类。

(继承自 Object)
ContextClassLoader

返回此线程的上下文 ClassLoader 。 - 或 - 设置此线程的上下文 ClassLoader。

Daemon

测试此线程是否为守护程序线程。 - 或 - 将此线程标记为 #isDaemon 守护程序线程或用户线程。

DefaultUncaughtExceptionHandler

返回当线程由于未捕获的异常而突然终止时调用的默认处理程序。 - 或 - 设置当线程由于未捕获的异常而突然终止且尚未为该线程定义其他处理程序时调用的默认处理程序。

Handle

基础 Android 实例的句柄。

(继承自 Object)
Id

返回此线程的标识符。

IsAlive

测试此线程是否处于活动状态。

IsInterrupted

测试此线程是否已中断。

JniIdentityHashCode

线程是程序中的执行线程。

(继承自 Object)
JniPeerMembers

线程是程序中的执行线程。

Name

返回此线程的名称。 - 或 - 将此线程的名称更改为等于参数 name

PeerReference

线程是程序中的执行线程。

(继承自 Object)
Priority

返回此线程的优先级。 - 或 - 更改此线程的优先级。

ThreadGroup

返回此线程所属的线程组。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

UncaughtExceptionHandler

返回当此线程由于未捕获的异常而突然终止时调用的处理程序。 - 或 - 设置当此线程由于未捕获的异常而突然终止时调用的处理程序。

方法

ActiveCount()

返回当前线程 java 中活动线程数的估计值。

CheckAccess()

确定当前正在运行的线程是否有权修改此线程。

Clone()

创建并返回此对象的副本。

(继承自 Object)
CountStackFrames()
已过时.

计算此线程中的堆栈帧数。

CurrentThread()

返回对当前正在执行的线程对象的引用。

Destroy()
已过时.

引发 UnsupportedOperationException

Dispose()

线程是程序中的执行线程。

(继承自 Object)
Dispose(Boolean)

线程是程序中的执行线程。

(继承自 Object)
DumpStack()

将当前线程的堆栈跟踪输出到标准错误流。

Enumerate(Thread[])

将当前线程的线程组及其子组中的每个活动线程复制到指定的数组中。

Equals(Object)

指示某个其他对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetStackTrace()

返回表示此线程的堆栈转储的堆栈跟踪元素数组。

GetState()

返回此线程的状态。

HoldsLock(Object)

true当且仅当当前线程持有指定对象的监视器锁时,返回 。

Interrupt()

中断此线程。

Interrupted()

测试当前线程是否已中断。

JavaFinalize()

当垃圾回收确定不再引用对象时,由垃圾回收器对对象调用。

(继承自 Object)
Join()

等待此线程死亡。

Join(Int64)

最多 millis 等待此线程死亡的毫秒数。

Join(Int64, Int32)

等待此线程最多 millis 等待毫秒和 nanos 纳秒。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
OnSpinWait()

指示调用方在发生其他活动的一个或多个操作之前暂时无法进行。

Resume()
已过时.

引发 UnsupportedOperationException

Run()

如果此线程是使用单独的Runnable运行对象构造的run,则调用该Runnable对象的 方法;否则,此方法不执行任何操作并返回 。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
Sleep(Int64)

导致当前正在执行的线程进入睡眠状态 (暂时停止执行) 指定的毫秒数,但受制于系统计时器和计划器的精度和准确性。

Sleep(Int64, Int32)

导致当前正在执行的线程进入睡眠状态 (暂时停止执行) 指定的毫秒数加上指定的纳秒数,但受系统计时器和计划器的精度和准确性限制。

Start()

导致此线程开始执行;Java 虚拟机调用 run 此线程的 方法。

Stop()
已过时.

引发 UnsupportedOperationException

Stop(Throwable)
已过时.

引发 UnsupportedOperationException

Suspend()
已过时.

引发 UnsupportedOperationException

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)

线程是程序中的执行线程。

适用于