?? +
字號:
any problems, send mails to lysindybear@sina.com.cn
在linux系統中,鎖大量存在,同時由于并發訪問的問題,帶來了一些代碼上的困惑以及程序上容易出現的
錯誤。
在linux系統中,用于保護共享資源的鎖有以下幾種:
spin_lock, write_lock。
他們都可以對共享的資源,臨界區進行訪問控制,一般對臨界區的訪問,不論讀還是寫都要加鎖。
這里要強調一點的是:臨界資源的申請,這里有一個很容易犯錯誤的地方。
1.假設存在一個共享資源池pool。同時又一個她的一個緩沖區cache。
2.我們的進程要進行讀操作,首先從cache中尋找,一般使用hash表的方式。如果沒有找到,
3.我們要向共享資源池申請一個資源A,但是沒有得到,我們必須對這個pool進行加鎖操作,然后取出一個資源,解鎖。
4.但是到了這里,我們要加倍的小心,我們解鎖出來以后,一般要再檢查一邊cache,看是否我們請求的
資源已經在cache中了,這是因為,在我們申請資源的時候,可能別的進程已經請求了,特別時在牽涉到
有資源計數的系統,如果不進行這種操作,可能會產生計數不匹配
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -