重要方法
start() 启动线程;
setPriority(int p) 设置线程的优先级;
interrupt() 有条件中断线程;
sleep(long s) (static)使线程睡眠;让出cpu资源;
currentThread() (static)获取当前正在执行的线程;
isAlive() 判断线程是否在活动状态;
yield() 让出cpu资源;
setDaemon(boolean b) 是否是守护线程;
join() 等待线程消亡;
新建 (Born) : 新建的线程处于新建状态
就绪 (Ready) : 在创建线程后,它将处于就绪状态,等待 start() 方法被调用
运行 (Running) : 线程在开始执行时进入运行状态
睡眠 (Sleeping) : 线程的执行可通过使用 sleep() 方法来暂时中止。在睡眠后,线程将进入就绪状态
等待 (Waiting) : 如果调用了 wait() 方法,线程将处于等待状态。用于在两个或多个线程并发运行时
挂起 (Suspended) : 在临时停止或中断线程的执行时,线程就处于挂起状态
恢复 (Resume) : 在挂起的线程被恢复执行时,可以说它已被恢复
阻塞 (Blocked) – 在线程等待一个事件时(例如输入/输出操作),就称其处于阻塞状态
死亡 (Dead) – 在 run() 方法已完成执行或其 stop() 方法被调用之后,线程就处于死亡状态
来自于<http://blog.sina.com.cn/s/blog_5f60c8e20100ckph.html>
分享到:
相关推荐
这个主题“设计滚动字演示线程状态及改变方法”主要涵盖了如何利用Java的多线程特性来实现滚动文字效果,并且管理线程的状态变化。下面我们将详细探讨相关的知识点。 1. **线程基础**: - **线程与进程**:在...
### Java线程:线程状态的转换 #### 一、线程状态及其转换 ...通过以上分析,我们可以看到Java线程状态转换的基本原理以及如何利用线程状态来控制线程的行为,这对于开发高性能、高可靠性的并发程序至关重要。
Java 线程状态转换图是 Java 编程中非常重要的一个概念,它描述了线程在不同的状态之间的转换关系。了解线程状态转换图对 Java 编程的理解和应用非常重要。本文将详细介绍 Java 线程状态转换图,包括初始状态、可...
在Delphi中,最常用的获取线程状态的方法是通过`TThread`类的内置属性和方法: - **`TThread.Active`**:返回布尔值,表示线程是否处于活动状态,即线程是否已经启动但未结束。 - **`TThread.IsTerminated`**:...
综上所述,MFC的状态管理机制提供了一套完整的框架来处理不同层次的状态信息,包括模块状态、进程状态和线程状态,这对于构建复杂的应用程序尤其重要。通过对这些状态的管理和维护,开发者能够更好地控制程序的行为...
查看线程状态,可以使用`Thread.currentThread().getState()`方法,该方法返回一个`Thread.State`枚举值,代表当前线程的状态。 下面是一个简单的示例,展示如何查看线程状态: ```java import java.util....
- 可以使用`GetThreadContext()`,`GetThreadTimes()`,或`QueryThreadCycleTime()`等API查询线程状态。 4. **线程同步**: - 为了确保线程安全,通常需要使用同步机制,如互斥量(`Mutex`)、信号量(`Semaphore...
总结来说,`Thread.IsAlive`是C#中用来检测线程状态的一个实用工具,它帮助开发者了解线程是否已经启动并正在运行,从而可以做出相应的控制决策。不过,考虑到线程调度的不确定性以及线程安全问题,正确地使用`...
对于判断线程状态,我们需要设置为`SystemThreadInformation`,这样返回的数据将包含所有系统线程的信息。 当`SystemInformationClass`设置为`SystemThreadInformation`时,`NtQuerySystemInformation`会返回一个`...
`_AFX_THREAD_STATE`类用于描述线程状态,而`AFX_MODULE_THREAD_STATE`则是线程状态与模块状态的结合体,它在线程局部存储模块相关的状态信息。 在MFC中,状态管理涉及一系列数据结构和类。`CNoTrackObject`是所有...
线程状态的变化是通过调用特定的方法实现的,如`sleep()`使线程暂停指定的时间,`join()`等待一个线程结束,`interrupt()`中断一个正在阻塞的线程,等等。Java的实时系统根据线程的优先级和状态决定哪个线程获得CPU...
Thread类提供了多种属性来检查和控制线程状态,如IsAlive、Priority(设置线程优先级)和Abort(强制终止线程)。但是,应该谨慎使用Abort,因为它可能导致程序状态不一致。 5. **Join和Sleep**: `Join`方法用于...
在Java中,推荐使用`interrupt()`方法来请求线程中断,然后在线程的`run()`方法中检查`isInterrupted()`或`interrupted()`状态来决定是否退出循环。例如: ```java public class MyRunnable implements Runnable { ...
2. 就绪状态(Runnable):调用Thread对象的start()方法后,线程进入就绪状态,表示线程准备运行,但不保证立即执行,需要等待CPU调度。 3. 运行状态(Running):CPU调度到就绪状态的线程后,线程开始执行run()...
在多线程编程中,了解线程状态是至关重要的,因为这可以帮助我们诊断问题、优化性能并确保程序的正确运行。线程状态是线程在生命周期中的不同阶段,每个阶段都对应着特定的行为和资源使用情况。下面我们将深入探讨...
- 在`Thread`的`run()`方法中抛出的异常默认不会被捕获,可能导致线程异常终止。可以在`Thread`类中覆盖`uncaughtExceptionHandler`属性,定义异常处理逻辑。 通过学习和实践`TestThread.java`这个实例,你可以更...
例如,如果遇到“Thread error 拒绝访问 (5)”这样的错误,通常是因为线程状态不正确,如尝试在不应该操作线程的时候暂停或恢复它。 总结,理解线程的基本操作对于编写并发程序至关重要。通过创建线程类、定义执行...
`Thread.CurrentThread`是静态属性,可以用来检查当前线程的状态,如是否是主线程、是否是后台线程等。例如: ```csharp Console.WriteLine("当前线程是前台线程吗? " + Thread.CurrentThread.IsBackground); ``` ...
理解并熟练掌握Thread类的构造器和方法,以及线程优先级的概念,对于编写高效、稳定的多线程程序至关重要。在实际开发中,应避免使用已过时的方法,合理利用线程调度机制,确保线程安全,提高程序性能。同时,对守护...