程序與執行緒的各種鎖分析總結
阿新 • • 發佈:2019-01-25
程序的檔案讀寫鎖學習:http://blog.csdn.net/anonymalias/article/details/9197641
http://blog.chinaunix.net/uid-27177626-id-3791049.html
執行緒的讀寫鎖學習:http://blog.csdn.net/callinglove/article/details/46646369
至於程序和執行緒的mutex鎖在我前篇文章就有http://blog.csdn.net/jason_zjj/article/details/54731334
另外附上linux中mmap的共享記憶體用法http://blog.csdn.net/angelbosj/article/details/8272887
經過github的test_lock檔案裡的四個程式測試,
得到了一些結論:
對於執行緒的mutex鎖,效率比執行緒的讀寫鎖(rwlock)要高,但是沒有讀寫鎖實用性強,因為讀寫鎖可以有共享讀鎖。
對於程序的mutex鎖,效率比檔案讀寫鎖的效率要高的非常多,檔案鎖效率雖然非常慢,但是比較安全,在一個程序掛掉之後,如果它獲取了mutex鎖。則其他程序會阻塞,但是如果用了檔案鎖,則會自動釋放該鎖。
然後執行緒的mutex是比程序的mutex效率高的。。畢竟執行緒比較輕量級。
前篇文章對執行緒和程序的mutex鎖的使用已經分析的比較詳細。
對於檔案鎖的話,其實也叫記錄鎖,可以對檔案的部分位元組範圍的資料進行上鎖。這樣就可以實現用一個檔案,供給多個程序同時上鎖(不同位置的鎖)。