线程的状态及状态转换

一、线程的状态

在java中线程一个分为 六大状态如下图

1. 新建状态(NEW)

         尚未启动的线程处于此状态

2.可运行状态(Runnable)

      在java虚拟机执行的线程处于此状态

     可运行状态可以细分为:

            (1) 运行状态running

            (2) 就绪状态

3.阻塞状态(BLOCK)

       被阻塞等待监视器锁定的线程处于此状态

4.等待状态(WAITING)

    正在等待其他线程执行特定动作的线程处于此状态

5.计时等待状态(TIMED_WAITING)

     正在等待其他线程执行动作到达指定等待时间的线程处于此状态

6.终止状态(TERMINATED)

    已退出的线程处于的状态

二.线程的状态转换

 1.当一个线程对象用 new 被创建时 其就处于 NEW 状态。

2.NEW状态 调用 start()方法 就转换成  RUNNABLE 状态,处于RUNNABLE状态的线程其他资源均具备,由操作系统提供具体的运行时间。Thread.yeild静态方法转换成Ready状态。

3.阻塞和等待线程,处于该状态的线程它暂时是不活动的。在等待进入同步代码块的锁(内部对象锁)时,线程处于Blocked状态,当其他线程释放了这个锁,并且线程调度器允许该线程持有这个锁时,它将编程非阻塞状态。 当调用o(任意对象).wait()或sleep()等方法处于waiting状态,如果wait()等有时间参数则处于计时等待状态。等待调用o.notify()等方法或超时期满、收到适当的通知转换状态。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值