美文网首页
Kotlin线程(3)线程状态

Kotlin线程(3)线程状态

作者: 狼性代码人 | 来源:发表于2019-06-18 07:29 被阅读0次

    在线程的生命周期中,线程会有5种状态。

    • 新建状态
      新建状态(New)是通过实例化 Thread 创建线程对象,它仅仅是一个空的线程对象。

    • 就绪状态
      当主线程调用新建线程的 start() 函数后,它就进入就绪状态(Runnable)。此时的线程尚未真正开始执行线程体,它必须等待 CPU 的调度。

    • 运行状态
      CPU 调度就绪状态的线程,线程进入运行状态(Running),处于运行状态的线程独占 CPU,执行完成线程体。

    • 阻塞状态
      由于某种原因运行状态的线程会进入不可运行状态,即阻塞状态(Blocked)。Java 虚拟机系统不能执行处于阻塞状态的线程,即使 CPU 空闲,也不能执行该线程。如下几个原因会导致线程进入阻塞状态:

      • 当前线程调用 sleep 函数,进入休眠状态;
      • 被其他线程调用了 join 函数,等待其他线程结束;
      • 发出 I/O 请求,等待 I/O 操作完成期间;
      • 当前线程调用 wait 函数。

      处于阻塞状态可以重新回到就绪状态,如休眠结束、其他线程加入、I/O 操作完成 和 调用 notifynotifyAll 唤醒 wait 线程。

    • 死亡状态
      线程执行完成线程体后,就会进入死亡状态(Dead),线程进入死亡状态有可能是正常执行完成进入,也可能是由于发生异常而进入的。


      线程状态

    相关文章

      网友评论

          本文标题:Kotlin线程(3)线程状态

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