国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

兩個線程,兩個互斥鎖如何形成死鎖

strongerHuang ? 來源:strongerHuang ? 作者:一口Linux ? 2020-12-28 09:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

兩個線程,兩個互斥鎖如何形成死鎖?

程序流程圖如下:

c1122ad4-46d6-11eb-8b86-12bb97331649.png

程序流程圖

如上圖所示:

t0時刻,主線程創建子線程,并初始化互斥鎖mutex1、mutex2;

t1時刻,主線程申請到了mutex1、子線程申請到了mutex2;

t2時刻,主線程和子線程都sleep 1秒鐘,防止優先獲得時間片的線程直接申請到了另外1個互斥鎖,導致程序直接退出;

t3時刻,主線程和子線程都想獲得對方手里的互斥鎖,但是對方都來不及釋放自己手里的鎖;

t4時刻,主線程和子線雙雙進入休眠。

【注意】為了保證主線程和子線程都能夠分別獲得鎖mutex1、mutex2,各自獲得鎖后一定要先sleep 1秒鐘,否則創建完子線程后,主線程還有一定的時間片,主線程會申請到鎖mutex2,無法形成死鎖。

死鎖

源碼如下

o4YBAF_pNF-AMP79AABcucKRsVw255.jpg

pIYBAF_pNGaAFWMGAACMZONs3TM009.jpg

pIYBAF_pNGyAUgCQAABZTHs3PoA856.jpg

編譯運行

從執行結果可以判斷,主線程和子線程分別獲得了互斥鎖mutex1、mutex2,sleep 1秒后,他們都想再分別申請mutex2、mutex1,而雙方都不想釋放自己手中的鎖,鎖已形成了死鎖,程序就一直處于休眠狀態。

查看下該進程的線程

查看進程ID,為4204

查看該進程創建的線程id:4204、4205。

責任編輯:xj

原文標題:兩個線程,兩個互斥鎖,怎么形成一個死循環?

文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 死鎖
    +關注

    關注

    0

    文章

    25

    瀏覽量

    8322
  • 線程
    +關注

    關注

    0

    文章

    509

    瀏覽量

    20826

原文標題:兩個線程,兩個互斥鎖,怎么形成一個死循環?

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    兩個RS485(Modbus RTU)主站與主站之間如何通訊

    本產品能很好解決Master-1主站向模塊寫入數據,Master-2主站讀取數據;Master-2主站向模塊寫入數據,Master-1主站讀取數據。由此解決兩個主站之間的互相讀通信難題。
    的頭像 發表于 02-08 15:32 ?629次閱讀
    <b class='flag-5'>兩個</b>RS485(Modbus RTU)主站與主站之間如何通訊

    兩個RS485-Modbus主站如何通訊

    本產品能很好解決Master-1主站向模塊寫入數據,Master-2主站讀取數據;Master-2主站向模塊寫入數據,Master-1主站讀取數據。由此解決兩個主站之間的互相讀通信難題。
    發表于 02-08 15:32 ?0次下載

    使用博圖(TIA Portal)監控PROFINET從站通訊狀態的兩個方法

    如何使用博圖監控Profinet從站通訊狀態,這里有兩個方法供你選擇。 方法一 | 使用DeviceStates指令 創建全局數據塊 在博圖項目中,創建一全局數據塊(DB),用于存儲從站狀態信息
    的頭像 發表于 01-17 11:21 ?1239次閱讀
    使用博圖(TIA Portal)監控PROFINET從站通訊狀態的<b class='flag-5'>兩個</b>方法

    曙光存儲連續斬獲兩個行業獎項

    近期,曙光存儲連續斬獲兩個行業獎項,自研技術產品在國產突破、AI行業應用等方面的成果獲得廣泛關注。
    的頭像 發表于 01-15 16:28 ?2483次閱讀

    一文讀懂:直線模組兩個滑塊距離能否調節?

    關鍵問題:直線模組中的兩個滑塊距離可以調節嗎?答案并非絕對,而是要根據直線模組的具體類型、結構設計來綜合判斷,不同類型的直線模組在滑塊距離調節上有著截然不同的特性。?飛
    的頭像 發表于 12-29 15:47 ?236次閱讀
    一文讀懂:直線模組<b class='flag-5'>兩個</b>滑塊距離能否調節?

    FreeRtos 能否同時使用兩個 CPU?

    的情況下,CM0 更愿意專門用于管理外設。 - 是否有在 CM0 和 CM4 中同時運行代碼的簡單示例或教程? - FreeRtos 能否同時使用兩個 CPU?
    發表于 11-11 08:28

    硬件SPI兩個CS操作兩個norflash,怎么互斥操作兩個norflash?

    硬件SPI兩個CS操作兩個norflash,怎么互斥操作兩個norflash,有一norf
    發表于 09-26 06:18

    基本半導體連獲兩個行業獎項

    近日,基本半導體憑借在碳化硅模塊領域的突出表現,連獲“國產SiC模塊TOP企業獎”和“年度優秀功率器件產品獎”兩個行業獎項。
    的頭像 發表于 09-05 16:31 ?1095次閱讀

    圖中兩個按鍵開關是兩個干簧管,為什么不直接對GND設計來檢測這個干簧管通斷呢?

    圖中兩個按鍵開關是兩個干簧管,為什么不直接對GND設計來檢測這個干簧管通斷呢? 這樣設計的原理是什么?
    發表于 06-17 06:30

    看到STM8L152用兩個IO用兩個或非門檢測兩個通斷,是什么原理呢?

    圖中兩個按鍵開關是兩個干簧管,為什么不直接對GND設計來檢測這個干簧管通斷呢? 這樣設計的原理是什么?
    發表于 06-12 06:25

    用于四頻 GSM / GPRS / EDGE 的 Tx-Rx FEM,帶兩個 Rx 交換機端口和雙頻 TD-SCDMA skyworksinc

    電子發燒友網為你提供()用于四頻 GSM / GPRS / EDGE 的 Tx-Rx FEM,帶兩個 Rx 交換機端口和雙頻 TD-SCDMA相關產品參數、數據手冊,更有用于四頻 GSM
    發表于 05-29 18:31
    用于四頻 GSM / GPRS / EDGE 的 Tx-Rx FEM,帶<b class='flag-5'>兩個</b> Rx 交換機端口和雙頻 TD-SCDMA skyworksinc

    ADAU1787四ADC、兩個DAC、帶音頻DSP的低功耗編解碼器技術手冊

    ADAU1787 是一款具有四輸入和兩個輸出的編解碼器,其中整合了兩個數字信號處理器 (DSP)。從模擬輸入到 DSP 內核再到模擬輸出的路徑已針對低延遲進行優化,適用于噪聲消除耳機。通過加入少量無源組件,ADAU1787 提
    的頭像 發表于 05-12 14:57 ?1514次閱讀
    ADAU1787四<b class='flag-5'>個</b>ADC、<b class='flag-5'>兩個</b>DAC、帶音頻DSP的低功耗編解碼器技術手冊

    allegro 兩個pth孔重疊不報drc

    allegro 如圖兩個pth孔重疊了!怎么設置可以不報drc!網上的關閉drc,忽略啥的都沒用看到!
    發表于 04-23 09:27

    兩個EMC抗干擾的經典案例

    一前言從輻射角度總結來說,形成天線效應的可能有三種情況;從輻射抗干擾角度來說,單極子天線和環形天線需要重點尋找及關注,定向的找到這些等效天線或許就能解決問題。下面以篇案例介紹。二手持抗干擾測試在手
    的頭像 發表于 04-22 11:33 ?1365次閱讀
    <b class='flag-5'>兩個</b>EMC抗干擾的經典案例

    請問DSP可以同時控制兩個不同的RGB屏嗎?

    如題,這種情況兩個LCD的時鐘信號和復位信號是不是都要分開?H和V信號可以共用?
    發表于 03-06 06:50