參考文獻

阻塞是指一個執行緒進入臨界區后,其它執行緒就必須在臨界區外等待,待進去的執行緒執行完任務離開臨界區后,其它執行緒才能再進去,
無障礙是所有執行緒都能進入臨界區,在無障礙的調度方式當中,所有的執行緒都相當于在拿取一個系統當前的快照,它們會一直重試,直到拿到的快照有效為止,那么如果一起修改共享資料,把資料改壞了可怎么辦呢?對于無障礙的執行緒來說,一旦檢測到這種情況,它就會立即對自己所做的修改進行回滾,確保資料安全,
無鎖是能保證至少有一個執行緒能夠在有限步當中完成它的操作,所有的執行緒在不停地競爭直到有一個勝出為止,
無等待相比于無鎖更進一步,它首先要求是無鎖的,保證所有執行緒能進并且至少有一個執行緒能出來,它要求所有進入臨界區的執行緒都能夠在有限步當中完成其操作,這個要求很高,因為任何執行緒都能夠無障礙進入臨界區,并且任何執行緒都能夠在有限步當中完成操作后離開臨界區,
無等待必須然也是無饑餓的,因為所有的執行緒都能在有限步當中完成,因此必然不會有執行緒永久地呆在臨界區內出不去,所以它一定是無饑餓的,
并發級別:阻塞、無障礙、無鎖、無等待
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258691.html
標籤:其他
上一篇:“春節檔”游戲運營核心方法論
下一篇:Zabbix安裝部署【超級詳細】
