• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    如何正確使用mutex鎖

    程序開辟中,多線程拜候共享數據的時辰,為了數據的同步性,點竄或者拜候數據前需要加鎖,點竄或拜候完數據后,需要解鎖,是以,本文將告訴你若何準確利用C++11供給的mutex鎖。

    東西/原料

    • C++11

    方式/步調

    1. 1

      凡是的環境下,先挪用mutex的函數lock加鎖,處置完當作數據后,再挪用函數unlock釋放鎖

    2. 2

      調試運行,輸出的打印信息如下圖所示,表白正常解鎖,而且釋放鎖

    3. 3

      若是加鎖后,進行數據處置的過程中異常,那么可能就沒有解鎖,如下圖所示,加鎖后,拜候了空的指針

    4. 4

      調試運行發現呈現異常,而且沒有準確的解鎖

    5. 5

      為了防止加鎖后處置過程中呈現異常或者直接return而沒有解鎖,可以挪用lock_guard來加鎖,而且主動解鎖

    6. 6

      從運行成果看,利用lock_guard后,程序可以正常運行

    7. 7

      最后也可以利用std::unique_lock來實現加鎖和主動解鎖

    注重事項

    • 喜好經驗接待點贊投票!
    • 經驗由 YWMLI1 原創,首發百度經驗,轉載請注明出處!
    • 發表于 2019-07-01 17:02
    • 閱讀 ( 867 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆