线程的五大状态

来源:互联网 发布:c语言乘方 编辑:程序博客网 时间:2024/05/22 01:42

新建状态---就绪状态---运行状态---堵塞状态---死亡状态

1.新建状态(new):当用new创建一个线程时,此线程并未开始运行,此时线程处于新建状态。

2.就绪状态(runnable):新创建的线程并不会自动运行,要调用start()方法才会执行线即启动了线程,start()方法建线程运行的系统资源,并调用run()方法,当start()方法返回后,线程就处于就绪状态。

3.运行状态(running):当线程获得CPU时间后,才进入真正的运行状态,真正开始执行run()方法。

4.堵塞状态(blocked):所谓堵塞状态就是正在运行的线程没有运行结果。线程在运行过程中会遇到各种的原因形成堵塞状态:

                                              a.线程通过调用sleep()方法进入睡眠状态。

                                              b.线程调用一个在I/O上被堵塞的操作,该操作在输入输出操作完成之前不会反回它的调用者。

                                              c.线程在调用一个锁,而该锁正在被其他线程使用。

                                              d.线程在等待某个触发条件。

5.死亡状态(dead):有两个原因会导致死亡状态:

                                         a.run()方法正常退出而自然死亡

                                         b.一个未捕获的异常终止了run()方法而线程死亡。

原创粉丝点击