簡單地說,死鎖的產生是由于兩個或多個線程之前有循環相關性引起的。
如運行事務1的線程T1具有了table1上的排它鎖,運行事務2的線程T2有table2的排它鎖,并且之后T2需要獲取table1的資源。但是T1已經具有了table1的排它鎖,所以T2在等待。當T1在使用table1還沒有釋放的同時,也需要獲取table2的資源,這時死鎖就產生了,因為table2被T2上了排它鎖。
因為專注,所以專業我的Java Blog |
簡單地說,死鎖的產生是由于兩個或多個線程之前有循環相關性引起的。
如運行事務1的線程T1具有了table1上的排它鎖,運行事務2的線程T2有table2的排它鎖,并且之后T2需要獲取table1的資源。但是T1已經具有了table1的排它鎖,所以T2在等待。當T1在使用table1還沒有釋放的同時,也需要獲取table2的資源,這時死鎖就產生了,因為table2被T2上了排它鎖。