下图转自教程视频,笔者经消化吸收做出以下整理并画出流程图,若理解有误请各位大哥哥大姐姐不吝赐教!!
线程工作状态由五部分组成,分别为:初始状态、就绪状态、运行状态、挂起状态、关闭状态。了解线程状态的切换将有助于我们更好掌握实时操作系统工作流程。
线程初始状态为动态线程、静态线程创建[1]。线程创建后,系统判断是否开始运行(startup),如果不是则继续等待,如果是则各线程进入到就绪状态,也就是我们俗称的“排队等待”。系统继续判断是否调用挂起函数,如果有则线程进入挂起状态,如果没有则继续判断CPU是否空闲,若否则线程进入挂起状态,若空闲则线程进入运行状态。此时,线程中的事务将开始执行(例如主函数)。
执行的事务分为顺序结构及循环结构,循环结构是指线程中事务不断循环运行,此时需要相应API函数参与使CPU跳出循环。系统判断线程中的事务是否有挂起进程命令(例如延时函数),若有则线程进入挂起状态,若无则继续判断是否有退出线程函数(例如exit(),break),若有则系统进入关闭状态(即常说的程序已全部运行结束),若无则回到就绪状态,开始执行下一个进程。
线程进入挂起状态则判断是否清除就绪线程,若是则清除线程并进入关闭状态,若否则回到就绪状态循环往复直至所有线程运行结束。
注[1]:关于什么是动态线程、静态线程及其他们创建步骤,可查阅本人第三篇学习笔记。
链接:https://mbb.eet-china.com/blog/3887794-413965.html
文章评论(0条评论)
登录后参与讨论