阻塞和掛起的區別

2022-06-13 16:24:09 字數 476 閱讀 8182

阻塞

如果乙個任務當前正在等待某個外部事件的話就說它處於阻塞態, 比如說如果某個任務調

用了函式 vtaskdelay()的話就會進入阻塞態, 直到延時週期完成。任務在等待佇列、訊號量、事

件組、通知或互斥訊號量的時候也會進入阻塞態。任務進入阻塞態會有乙個超時時間,當超過

這個超時時間任務就會退出阻塞態,即使所等待的事件還沒有來臨!

掛起

像阻塞態一樣,任務進入掛起態以後也不能被排程器呼叫進入執行態, 但是進入掛起態的

任務沒有超時時間。任務進入和退出掛起態通過呼叫函式 vtasksuspend()和 xtaskresume()。 

個人理解:掛起任務可以源於執行態任務和就緒態任務,而阻塞是源於執行態任務。

linux 區別 掛起 阻塞 阻塞和死迴圈的區別

關於各種任務狀態的實質 1.掛起 將任務掛起的實質就是1 將當前任務控制塊的狀態標誌改為掛起狀態2 將任務就緒表中的對應位置0 3 如果是事件型別,則還會將任務加入到當前的事件等待任務列表中 和就緒表一樣的點陣圖 4 執行任務排程,讓出cpu使用權。這裡需要注意的是,任務掛起後任務不是處於占用cpu...

程序的阻塞和掛起的區別

程序的阻塞和掛起的區別 理解一 掛起是一種主動行為,因此恢復也應該要主動完成,而阻塞則是一種被動行為,是在等待事件或資源時任務的表現,你不知道他什麼時候被阻塞 pend 也就不能確切 的知道他什麼時候恢復阻塞。而且掛起佇列在作業系統裡可以看成乙個,而阻塞佇列則是不同的事件或資源 如訊號量 就有自己的...

程序的阻塞和掛起的區別

作業系統中睡眠 阻塞 掛起的區別形象解釋 首先這些術語都是對於執行緒來說的。對執行緒的控制就好比你控制了乙個雇工為你幹活。你對雇工的控制是通過程式設計來實現的。掛起執行緒的意思就是你對主動對雇工說 你睡覺去吧,用著你的時候我主動去叫你,然後接著幹活 使執行緒睡眠的意思就是你主動對雇工說 你睡覺去吧,...