linux下讀寫鎖 linux互斥鎖和讀寫鎖的區(qū)別與聯(lián)系?
linux互斥鎖和讀寫鎖的區(qū)別與聯(lián)系?信號(hào)量和互斥鎖的區(qū)別:1?;コ庥糜诰€程互斥,信號(hào)量用于線程同步。這是互斥和信號(hào)量之間的根本區(qū)別,即互斥和同步之間的區(qū)別。互斥:這意味著同一時(shí)間只允許一個(gè)訪問者訪問
linux互斥鎖和讀寫鎖的區(qū)別與聯(lián)系?
信號(hào)量和互斥鎖的區(qū)別:1?;コ庥糜诰€程互斥,信號(hào)量用于線程同步。
這是互斥和信號(hào)量之間的根本區(qū)別,即互斥和同步之間的區(qū)別。
互斥:這意味著同一時(shí)間只允許一個(gè)訪問者訪問一個(gè)資源,這是唯一和排他的。但是,mutex不能限制訪問者對(duì)資源的訪問順序,即訪問無序。
同步:指訪問者在互斥的基礎(chǔ)上(大多數(shù)情況下)通過其他機(jī)制有序地訪問資源。在大多數(shù)情況下,同步是互斥的,尤其是在寫入所有資源時(shí)。在少數(shù)情況下,允許多個(gè)訪問者同時(shí)訪問資源
2。互斥值只能是0/1,信號(hào)量值可以是非負(fù)整數(shù)。
換句話說,一個(gè)互斥只能用于一個(gè)資源的互斥訪問,不能實(shí)現(xiàn)多資源的多線程互斥問題。信號(hào)量可以實(shí)現(xiàn)多個(gè)相似資源的多線程互斥和同步。當(dāng)信號(hào)量是單值信號(hào)量時(shí),它還可以完成對(duì)資源的獨(dú)占訪問。
3. 互斥鎖的鎖定和解鎖必須分別由同一個(gè)線程使用。信號(hào)量可以由一個(gè)線程釋放,也可以由另一個(gè)線程獲取。
讀鎖和寫鎖區(qū)別?
共享鎖也稱為讀鎖。如果事務(wù)t將s鎖添加到數(shù)據(jù)對(duì)象a,則事務(wù)t可以讀取a,但不能修改a。其他事務(wù)只能將s鎖添加到a,而不能添加x鎖,直到t釋放a上的s鎖。這確保了其他事務(wù)可以讀取a,但在t釋放a上的s鎖之前,t不能對(duì)a進(jìn)行任何更改。
獨(dú)占鎖(x鎖)也稱為寫入鎖上。如果事務(wù)t將x鎖應(yīng)用于數(shù)據(jù)對(duì)象a,則事務(wù)t可以讀取a或修改a。在t釋放a上的鎖之前,其他事務(wù)無法將任何鎖應(yīng)用于a。這確保了在t釋放a上的鎖之前,其他事務(wù)無法讀取和修改a