共享鎖 S鎖 和排它鎖 X鎖

2021-09-07 12:48:46 字數 941 閱讀 3999

共享鎖:(讀取)操作建立的鎖。其他使用者可以併發讀取資料,但任何事物都不能獲取資料上的排它鎖,直到已釋放所有共享鎖。

共享鎖(s鎖)又稱為讀鎖,若事務t對資料物件a加上s鎖,則事務t只能讀a;其他事務只能再對a加s鎖,而不能加x鎖,直到t釋放a上的s鎖。這就保證了其他事務可以讀a,但在t釋放a上的s鎖之前不能對a做任何修改。

排它鎖排它鎖:排它鎖又稱為寫鎖((exclusive lock,簡記為x鎖)),若事物t對資料物件a加上x鎖,則只允許t讀取和修改a,其它任何事務都不能再對a加任何型別的鎖,直到t釋放a上的鎖。它防止任何其它事務獲取資源上的鎖,直到在事務的末尾將資源上的原始鎖釋放為止。

1.共享鎖(s鎖):如果事務t對資料a加上共享鎖後,則其他事務只能對a再加共享鎖,不能加排它鎖。獲准共享鎖的事務只能讀資料,不能修改資料。

排他鎖(x鎖):如果事務t對資料a加上排他鎖後,則其他事務不能再對a加任任何型別的封鎖。獲准排他鎖的事務既能讀資料,又能修改資料。

2.共享鎖下其它使用者可以併發讀取,查詢資料。但不能修改,增加,刪除資料。資源共享.

在第乙個連線中執行以下語句

begin tran

select * from table1 holdlock -holdlock人為加鎖

where b='b2'

waitfor delay '00:00:30' --等待30秒

commit tran

在第二個連線中執行以下語句

begin tran

select a,c from table1

where b='b2'

update table1

set a='aa'

where b='b2'

commit tran

若同時執行上述兩個語句,則第二個連線中的select查詢可以執行

而update必須等待第乙個事務釋放共享鎖轉為排它鎖後才能執行 即要等待30秒

共享鎖和排它鎖

首先了解的是共享鎖和排它鎖都屬於悲觀鎖。是悲觀鎖的不同實現。共享鎖 讀鎖,是讀取操作建立的鎖,其他使用者可以併發的讀取資料,但任何事務都不能對資料進行修改,知道釋放了共享鎖。如果事務t對資料a加上共享鎖以後,其他事務只能對資料a加共享鎖,不能加排它鎖,獲取共享鎖的事務只能讀取資料,不能修改資料。排它...

共享鎖和排它鎖

共享鎖 s鎖 如果事務t對資料a加上共享鎖後,則其他事務只能對a再加共享鎖,不能加排他鎖。獲准共享鎖的事務職能讀取資料,不能修改資料。排他鎖 x鎖 如果事務t對資料a加上排他鎖後,則其他事務不能在對a加任何型別的封鎖。獲准排他鎖的事務既能讀取資料,也能修改資料。資料庫死鎖的原因 若干事務相互等待對方...

讀寫鎖,共享鎖,排它鎖

共享鎖 讀鎖 共享鎖就是允許多個執行緒同時獲取乙個鎖,乙個鎖可以同時被多個執行緒擁有。若事務t對資料物件a加上共享鎖,則事務t可以讀a但不能修改a,其他事務只能再對a加共享鎖,而不能加排它鎖,直到t釋放a上的共享鎖。這保證了其他事務可以讀a,但在t釋放a上的鎖之前不能對a做任何修改。排它鎖 寫鎖 排...