线程的五种运行状态

1、新生状态

        用上一篇创建线程的方式创建线程对象后,该线程对象就处于新生状态,处于新生状态的线程拥有自己的内存空间,通过调用start方法后进入就绪状态。

2、就绪状态

        处于就绪状态的线程已经具备了运行的条件,但是还没有分配到CPU,处于线程就绪队列等待系统为其分配CPU。当系统选定一个线程对象为其分配CPU之后,此线程就会进入运行状态,系统挑选线程的动作称为CPU调度。一旦获得CPU,线程就会进入运行状态并自动调用自己的run方法。

3、运行状态

        处于运行状态的线程会执行自己的run方法,直到系统调用其他方法而终止,或等待某资源而进入阻塞状态,或执行完程序进入消亡状态。

4、阻塞状态

        处于运行状态的线程,在某些情况下,如执行了sleep()方法,或等待I/O设备等资源,将让出CPU,并暂停自己的运行进入阻塞状态。当引起阻塞的原因消除时:比如睡眠时间到,或等待的I/O设备空闲下来,线程便进入就绪状态,进入就绪队列等待CPU,得到CPU后从原来暂停的地方继续开始执行。

5、消亡状态

        此状态为线程生命周期的最后一个阶段,线程消亡的状态有两个:1、线程执行完所有工作,自然消亡。2、被强制性的终止。

二、状态切换如下图所示:

                            

三、使运行的线程进入阻塞的方法:

1、sleep()方法:   使当前线程进入睡眠,让出CPU。

2、join()方法:    等待调用此方法的线程运行直至消亡后其他线程才能运行。

3、yeild()方法:   暂停调用此方法的线程,让出CPU

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值