鎖的一些概念

2021-06-01 19:27:00 字數 888 閱讀 8630

作業需要乙個目標之前分配目標,這樣在用目標是不用再等,可保證完成所需功能,這叫目標的分配。

可用alcobj命令預先分配目標,用dlcobj解除分配

目標是根據要他們做什麼來分配的(讀或者修改)和他們是否可以共享。檔案和成員總是以*shrrd來分配。而資料用規定所狀態來分配鎖的級別。

鎖狀態標誌使用的目標已是否可共享。

有下列五個鎖狀態:

1. *excl(排他)

目標對請求他的作業保留排他使用。其他作業不可使用它。

2.*exclrd(排他但允許讀)

目標已分配給請求他的作業,但是別的作業可以讀他

3. *shrup(共享更新)

目標對其他作業共享讀或更新。即另外的使用者可對同一目標請求共享讀鎖狀態或共享修改鎖狀態

4.*shrnup(共享不更新)

5 *shrrd(共享更新)

1)怎樣看檔案中記錄有沒有被一些作業鎖住,用cl命令:

dsprcdlck file(your_file)

2)怎樣看檔案有沒有被一些作業鎖住,用cl命令

wrkobjlck obj(your_file) objtype(*file) mbr(*all) 

3) 檔案被開啟,就被鎖住了,其他作業不能刪除修改這個檔案。

4)檔案在 f 表中定義為允許更新型別,預設讀紀錄,記錄就會被鎖住,如果不希望鎖住記錄,需要增加n標識

5)更新紀錄,記錄就被解鎖

6)讀下乙個記錄,解鎖舊紀錄,鎖住新紀錄

7)unlock 後面雖然跟的是檔名,其實開的是紀錄鎖,不是檔案鎖。

8)乙個作業只能解自己加上去的鎖,不能解開其他作業的鎖,除非殺了其他作業。

9)關閉檔案,或者作業結束,就自動解開了檔案鎖。

10)檔案關閉了,記錄鎖也就自動解開了。

鎖的一些概念

使用reentrantlock獲取鎖的時候會判斷當前執行緒是否為獲取鎖的執行緒,如果是則將同步的狀態 1 釋放鎖的時候則將狀態 1。只有將同步狀態的次數置為 0 的時候才會最終釋放鎖。使用reentrantreadwritelock,同時維護一對鎖 讀鎖和寫鎖。當寫執行緒訪問時則其他所有鎖都將阻塞,...

關鍵字鎖的一些概念

無鎖 偏向鎖 輕量級鎖 重量級鎖 隨著競爭情況公升級 鎖可以公升級但是不能降級 比如在單執行緒下stringbuffer 就是無鎖 偏向鎖 總是由單執行緒訪問同步 塊,會在物件頭和棧針的鎖記錄儲存鎖偏向的執行緒id jdk6 7預設啟用 但是啟動後幾秒才啟用 關閉延遲立即啟用,啟用加上 xx 0 字...

關於執行緒一些鎖的概念和擴充套件

一.擴充套件 臨界區 指的是乙個訪問共用資源 例如 共用裝置或是共用儲存器 的程式片段,而這些共用資源又無法同時被多個執行緒訪問的特性。當有執行緒進入臨界區段時,其他執行緒或是程序必須等待 例如 bounded waiting 等待法 有一些同步的機制必須在臨界區段的進入點與離開點實現,以確保這些共...