幫助理解 死鎖 的案例

2021-08-29 05:08:04 字數 319 閱讀 7418

取自:ldd3,chapter5,自旋鎖->自旋鎖和原子上下文

我們的驅動程式正在執行,並且已經獲得了乙個自旋鎖,這個鎖控制著對裝置的訪問。在擁有這個鎖的時候,裝置產生了乙個中斷,它導致中斷處理程式(routine)被呼叫。而中斷處理程式在訪問該裝置前,也要獲得這個鎖。在中斷處理程式中擁有鎖是合法的,這也是自旋鎖操作不能休眠的乙個原因。但是,當中斷處理程式在最初擁有鎖的**所在的處理器上執行時(這句話表述有點繞),會發生什麼情況呢?在中斷例程自旋時,非中斷**將沒有任何機會來釋放這個鎖,處理器將永遠自旋下去

所以結論是:為了避免這種陷阱,我們需要在擁有自旋鎖時,禁止中斷(僅在本地cpu上)

幫助理解content provider的小問題

1.content provider是如何實現資料共享的?答 乙個程式可以通過實現乙個content provider 的抽象介面將自己的資料完全暴露出去,而且content provider是以類似資料庫中 表的方式將資料暴露。content provider 儲存和檢索資料,通過它可以讓所有的應...

rxjs 的對映生活中的例子幫助理解

craete of from建立乙個nba賽事 var observable observable.create subscriber 勇士球迷張三 var zhangsan error err complate 火箭隊球迷李四 var lisi error err complate observa...

MQTT的一些常用術語 幫助理解

1 網路連線 network connection mqtt使用的底層傳輸協議基礎設施 客戶端使用它連線服務端 它提供有序的 可靠的 雙向位元組流傳輸。mqtt協議通過網路傳輸應用資料。應用訊息通過 mqtt 傳輸時,它們有關聯的服務質量 qos 和主題 topic 3 客戶端 client 使用m...