美文网首页
多线程-02-线程的生命周期

多线程-02-线程的生命周期

作者: 垃圾简书_吃枣药丸 | 来源:发表于2018-01-12 16:17 被阅读6次

线程的生命周期

新建 New
就绪 Runnable 等待执行
运行 Running
阻塞 Block
死亡 Dead

线程被创建之后处于New状态,start()方法调用之后处于Runnable状态,至于什么时候开始则需要等待JVM的调度。

线程的run()是线程的执行体,start()方法才是线程的启动方法。如果直接调用线程的run()方法的话,java会把线程当成普通对象,把run()方法当成普通方法,所以并不会启动新的线程。

如果就绪状态的线程获得了cpu,开始执行run()的方法体。

线程死亡

  1. run()或者call()方法执行完毕,线程正常结束。
  2. 线程抛出一个未捕获的Exception或者Error。
  3. 直接调用该线程的stop()方法来结束该线程---该方法容易导致死锁,尽量不适用。
    当主线程结束时,并不会影响其他线程,其他线程不会随之结束,一旦子线程启动起来后,它就拥有跟主线程同样的地位,不会受到主线程的影响

判断一个线程是否死亡:osAlive()。就绪,运行,阻塞状态的线程返回true,新建和死亡状态的线程返回false。
已死亡的线程不可再start()。抛出异常IllegalThreadStateException

相关文章

网友评论

      本文标题:多线程-02-线程的生命周期

      本文链接:https://www.haomeiwen.com/subject/csmfoxtx.html