美文网首页
425,线程的状态与生命周期(面试点:线程的整个生命周期:新建-

425,线程的状态与生命周期(面试点:线程的整个生命周期:新建-

作者: 枫叶1234 | 来源:发表于2021-01-20 16:39 被阅读0次

    下图是线程状态示意图,从图中可以看出线程的生命周期是:新建 - 就绪 - 运行 - 阻塞 - 死亡

    image.png

    下面分别阐述线程生命周期中的每一步

    • 新建:实例化线程对象

    • 就绪:向线程对象发送start消息,线程对象被加入可调度线程池等待CPU调度。

    • 运行:CPU 负责调度可调度线程池中线程的执行。线程执行完成之前,状态可能会在就绪和运行之间来回切换。就绪和运行之间的状态变化由CPU负责,程序员不能干预。

    • 阻塞:当满足某个预定条件时,可以使用休眠或锁,阻塞线程执行。sleepForTimeInterval(休眠指定时长),sleepUntilDate(休眠到指定日期),@synchronized(self):(互斥锁)。

    • 死亡:正常死亡,线程执行完毕。非正常死亡,当满足某个条件后,在线程内部中止执行/在主线程中止线程对象

    • 还有线程的exit和cancel

    • [NSThread exit]:一旦强行终止线程,后续的所有代码都不会被执行。

    • [thread cancel]取消:并不会直接取消线程,只是给线程对象添加 isCancelled 标记。

    相关文章

      网友评论

          本文标题:425,线程的状态与生命周期(面试点:线程的整个生命周期:新建-

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