讀寫鎖和互斥鎖的區別,自旋鎖和互斥鎖的區別

學習復雜的技術一定要通過簡單的生活事例去理解,和加深記憶,不然你絕對掌握不了!鎖用在高并發,多線程模型當中,用于解決共享資源的安全問題!防止數據錯誤!下面分別用事例說下這幾種鎖機制:1,互斥鎖:也叫阻塞鎖,就像上wc,同一個WC不可能容納兩個人(線程)同時進行吧?一個人在上的時候,把門關上了,另一個人只能一直等著,這就是互斥鎖(只有一個能執行)!2,條件鎖:也叫條件變量鎖,兩個人去酒店吃飯,你去上WC的時候,發現里面有人(別的線程在執行)在上,敲了敲門,里面的人說:你先再去吃會,等我好了我叫你哈!然后你回去繼續等著?。o競爭),等到他好了叫你了(喚醒線程),你才去繼續執行!3,讀寫鎖:同一個場景,同一個坑位!酒店人太多了,上廁所擠不過來!怎么辦呢?一塊小便吧(同享同一個坑位,小便,讀鎖共享),上大號怎么辦呢?是只能一個人?。▽戞i是一個線程獨占)!解決大量的小便阻塞坑位的問題!4,自旋鎖:是同一個場景,同一個坑位!一個人已經占了坑了,你很急啊,要拉褲子了,怎么辦呢?一直敲門(循環檢索是否可以獲得鎖),同時說,我好急??!直到里面的人不勝其煩出來了,你進去愉快的上廁所(執行線程)了!這個過程中你一直在敲門(一直使用CPU資源)!有定時鎖,輪詢鎖,對象鎖,類鎖,顯示鎖,隱式鎖等下次再舉例吧!別問我為什么,因為你沒關注我.... 。
如何理解互斥鎖、條件鎖、讀寫鎖以及自旋鎖,它們的區別在哪?
【讀寫鎖和互斥鎖的區別,自旋鎖和互斥鎖的區別】

讀寫鎖和互斥鎖的區別,自旋鎖和互斥鎖的區別


學習復雜的技術一定要通過簡單的生活事例去理解,和加深記憶,不然你絕對掌握不了!鎖用在高并發,多線程模型當中,用于解決共享資源的安全問題!防止數據錯誤!下面分別用事例說下這幾種鎖機制:1,互斥鎖:也叫阻塞鎖,就像上wc,同一個WC不可能容納兩個人(線程)同時進行吧?一個人在上的時候,把門關上了,另一個人只能一直等著,這就是互斥鎖(只有一個能執行)!2,條件鎖:也叫條件變量鎖,兩個人去酒店吃飯,你去上WC的時候,發現里面有人(別的線程在執行)在上,敲了敲門,里面的人說:你先再去吃會,等我好了我叫你哈!然后你回去繼續等著?。o競爭),等到他好了叫你了(喚醒線程),你才去繼續執行!3,讀寫鎖:同一個場景,同一個坑位!酒店人太多了,上廁所擠不過來!怎么辦呢?一塊小便吧(同享同一個坑位,小便,讀鎖共享),但是上大號怎么辦呢?還是只能一個人啊(寫鎖還是一個線程獨占)!解決大量的小便阻塞坑位的問題!4,自旋鎖:還是同一個場景,同一個坑位!一個人已經占了坑了,但是你很急啊,要拉褲子了,怎么辦呢?一直敲門(循環檢索是否可以獲得鎖),同時說,我好急??!直到里面的人不勝其煩出來了,你進去愉快的上廁所(執行線程)了!這個過程中你一直在敲門(一直使用CPU資源)!還有定時鎖,輪詢鎖,對象鎖,類鎖,顯示鎖,隱式鎖等下次再舉例吧!別問我為什么,因為你還沒關注我....。

    推薦閱讀