java线程的生命周期有哪些

 我来答
西安天融信教育
2018-05-25 · TA获得超过996个赞
知道小有建树答主
回答量:1629
采纳率:73%
帮助的人:186万
展开全部
生命周期的五种状态
新建(new Thread)
当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。
例如:Thread t1=new Thread();
就绪(runnable)
线程已经被启动,正在等待被分配给CPU时间片,也就是说此时线程正在就绪队列中排队等候得到CPU资源。例如:t1.start();
运行(running)
线程获得CPU资源正在执行任务(run()方法),此时除非此线程自动放弃CPU资源或者有优先级更高的线程进入,线程将一直运行到结束。
死亡(dead)
当线程执行完毕或被其它线程杀死,线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行。
自然终止:正常运行run()方法后终止
异常终止:调用stop()方法让一个线程终止运行
堵塞(blocked)
由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。
正在睡眠:用sleep(long t) 方法可使线程进入睡眠方式。一个睡眠着的线程在指定的时间过去可进入就绪状态。
正在等待:调用wait()方法。(调用motify()方法回到就绪状态)
被另一个线程所阻塞:调用suspend()方法。(调用resume()方法恢复)
赵小刀556
2020-12-21 · 超过17用户采纳过TA的回答
知道答主
回答量:98
采纳率:0%
帮助的人:5.8万
展开全部
新建-就绪-(阻塞)-运行--死亡

其中当用new 创建完一个线程对象后,该线程处于新建状态

当线程对象调用了start()后,该线程处于就绪状态

如果处于就绪状态的线程获得CPU时间片,开始执行run方法的线程执行体,该线程处于运行状态

如果线程调用了sleep()或者调用了一个阻塞式IO方法等,该线程处于阻塞状态

如果线程的run()执行完成或者抛出一个未捕获的异常等原因,该线程处于死亡状态
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式