线程的六种状态
展开全部
线程整个生命周期分为六种状态:NEW状态、RUNNABLE状态、BLOCKED状态、WAITING状态、TIMED_WAITING状态、TERMINATED状态。其中NEW状态、RUNNABLE状态与TERMINATED状态是每个线程必定经历的状态。下面我大致讲解一下每个状态的具体效果。
NEW状态:尚未启动的线程处于此状态。
RUNNABLE状态:在Java虚拟机中执行的线程处于此状态。
BLOCKED状态:被阻塞等待监视器锁定的线程处于此状态。
WAITING状态:无限期等待另一个线程执行特定操作的线程处于此状态。
TIMED_WAITING状态:正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态。
TERMINATED状态:已退出的线程处于此状态。
流程创建后未启动会进入NEW状态,启动后进入RUNNABLE状态,执行线程任务,结束线程释放,进入TERMIBATED状态。而在RUNNABLE状态时可能会出现由于时间片到期,程序从内部暂停等情况进入阻塞(BLOCKED状态、WAITING状态和TIME_WAITING状态大都可以理解为阻塞),而当达到一定的条件,如程序对线程的唤醒,或争抢到时间片时,线程从阻塞进入RUNNABLE状态。
NEW状态:尚未启动的线程处于此状态。
RUNNABLE状态:在Java虚拟机中执行的线程处于此状态。
BLOCKED状态:被阻塞等待监视器锁定的线程处于此状态。
WAITING状态:无限期等待另一个线程执行特定操作的线程处于此状态。
TIMED_WAITING状态:正在等待另一个线程执行最多指定等待时间的操作的线程处于此状态。
TERMINATED状态:已退出的线程处于此状态。
流程创建后未启动会进入NEW状态,启动后进入RUNNABLE状态,执行线程任务,结束线程释放,进入TERMIBATED状态。而在RUNNABLE状态时可能会出现由于时间片到期,程序从内部暂停等情况进入阻塞(BLOCKED状态、WAITING状态和TIME_WAITING状态大都可以理解为阻塞),而当达到一定的条件,如程序对线程的唤醒,或争抢到时间片时,线程从阻塞进入RUNNABLE状态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
中智咨询
2024-08-28 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询