阻塞和挂起的区别

阻塞

如果一个任务当前正在等待某个外部事件的话就说它处于阻塞态, 比如说如果某个任务调用了函数 vTaskDelay()的话就会进入阻塞态, 直到延时周期完成。任务在等待队列、信号量、事件组、通知或互斥信号量的时候也会进入阻塞态。任务进入阻塞态会有一个超时时间,当超过这个超时时间任务就会退出阻塞态,即使所等待的事件还没有来临!

挂起

像阻塞态一样,任务进入挂起态以后也不能被调度器调用进入运行态, 但是进入挂起态的任务没有超时时间。任务进入和退出挂起态通过调用函数 vTaskSuspend()xTaskResume()。 

 

个人理解:挂起任务可以源于运行态任务和就绪态任务,而阻塞是源于运行态任务。


 

 

posted @ 2021-03-04 00:36  昆山皮皮虾  阅读(1275)  评论(0编辑  收藏  举报