一天,隔壁老王去澡堂洗澡。到了澡堂後先去吧檯交了錢,然後服務員給了他一把小櫃子的鑰匙(小櫃子就是我們去澡堂洗澡時用來存放衣物的)。老王**服後,用鑰匙開啟櫃子把衣服存放了進去,然後又用鑰匙把櫃子鎖上了。
把老王存放衣物當做乙個程序。存放衣物的小櫃子是公共的資源,我們去洗澡的每乙個人都可以使用,但是使用的時候只能是乙個人。這不就是臨界資源
唄。我們通過鑰匙來實現了每次只能乙個人使用,這個鑰匙就是互斥變數,這個存放衣物的過程就是臨界區
。
聽完故事了大家再來看看文字的具體描述把。
臨界資源
程序之間共享資源,但有些資源一次只能讓乙個程序來使用。這些資源就是臨界資源。如印表機、磁帶機等等。就印表機而言,它可以讓很多程序共享,但是使用時只能是乙個程序來使用。
臨界區
指的是乙個訪問臨界資源
的程式片段。當有執行緒進入臨界區段時,其他執行緒或是程序必須等待。這樣就可以使程序在訪問臨界資源時是互斥的,不會引起死鎖。
一起來學OpenMP(7) 執行緒同步之臨界區
一 引言 上一節介紹了openmp中atomic互斥鎖機制的使用用法,本節介紹臨界區互斥鎖機制的使用用法。這裡的臨界區與windows下的criticalsection類似。二 臨界區宣告方法 pragma omp critical name 表示名字可選 並行程式塊,同時只能有乙個執行緒能訪問該並...
用隱喻來更充分的理解軟體開發
隱喻是對事物或知識的通俗抽象,能幫助人更好的理解知識,也可以啟發探索不同的方向。化學家庫勒夢見一條蛇咬著自己的尾巴,醒來後他意識到類似的環狀分子結構可以解釋苯的各種特性。後來的實驗證實了他的這個假說。好的隱喻除了幫助人們理解事物,也能助力事物的研究。例如天圓地方的隱喻無法解釋為什麼航海時會先看到桅杆...
用gdb來理解 值傳遞 指標傳遞 引用傳遞
1.常用的gdb命令 1 顯示 list list 顯示10行 list 1 顯示1 10行,再鍵入list或者回車,顯示下面10行 list 1,20 顯示1 20行 2 設定斷點 break break 15 在第15行設定斷點 break func 在函式func 入口設定斷點 info br...