线程的5种状态

线程的5种状态

每个Java程序都有一个默认的主线程,对于Java应用程序,主线程是main()方法执行的线索。要想实现多线程,必须在主线程中创建新的线程对象。一个线程从创建到死亡,都处于创建,就绪,运行,阻塞,终止这5种状态的某个状态。
  1,创建状态
  在程序中用new运算符创建了一个Thread类或子类的实例化对象后,新的线性对象便处于创建状态,此时,它已经有了相应的内存空间,但还未对线程分配任何资源,所以还处于不可运行状态。新建一个线程对象可采用线程构造方法来实现,例如Thread thread=new Thread()。
  2,就绪状态
  新建线程对象后,若要执行它,系统就要为这个线程分配系统资源。调用该线程的start()方法就可以完成此项工作。当线程启动时。线程进入就绪状态。此时,线程将进入线程队列排队,等待CPU服务,这表明它已经具备条件了,一旦它获得CPU等资源时,就可以脱离创建它的主线程而独立运行。
  3,运行状态
  当就绪状态的线程被调用并获得CPU等资源时,便进入了运行状态。此时自动调用该线程对象的run()方法。
  4,阻塞状态
  一个正在执行的线程在某些特殊情况下,如被人为挂起或需要执行耗时的输入/输出操作时,将让出CPU并暂时停止自己的执行,以后还可以恢复运行的状态称为阻塞状态。在可执行状态下,如果发生以下几种情况中的一种,就说明了线程进入了阻塞状态。

  • 调用了该线程的sleep()休眠方法
  • 调用了该线程的wait()休眠方法
  • 调用了该线程的suspend()休眠方法
  • 该线程正在等待I/O流操作完成
     阻塞时,线程不能进入排队队列,只有当引起阻塞的原因被消除后,线程才可以转入就绪状态。
      5,终止状态
      如果一个线程在可执行的状态下,运行run()方法完成后或调用stop()或destroy()方法,就说明线程进入了终止状态(死亡状态),处于这种状态的线程不具有继续运行的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钴60

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值