Session的lock 方法用途

2021-08-30 20:39:35 字數 562 閱讀 2644

session.lock(detachedobject, lockmode.read);

1.版本檢查

2.公升級鎖為悲觀鎖

3.把游離物件與當前session關聯

session的lock()方法與update()方法的區別

lock()方法:

1.在執行lock()方法時,如果設定了lockmode.read模式,則立即進行版本檢查,使用類似以下形式的查詢語句:select id from table where id = 1 and version = 0;如果資料庫中沒有匹配的記錄,就丟擲staleobjectstatexception。

2.並不會計畫執行乙個update語句。

update()方法:

1.在執行update()方法時,並不會進行版本檢查,直到session清理快取時才會進行版本檢查,如果資料庫中沒有匹配的記錄,就丟擲staleobjectstatexception。

2.會計畫執行乙個update語句。

session的lock()方法與update()方法的相同點

把游離物件與當前session關聯。

用with管理lock鎖

import threading import time num 0 全域性變數多個執行緒可以讀寫,傳遞資料 mutex threading.lock 建立乙個鎖 class mythread threading.thread defrun self global num with mutex fo...

公平鎖的lock 方法走讀

首先我們先搞明白繼承關係,reentrantlock的內部類fairsync extends sync extends abstractqueuedsynchronizer reentrantlock中的內部類fairsync中lock方法,呼叫了abstractqueuedsynchronizer...

Session的常用方法

session物件主要用於屬性操作和會話管理,常用方法如下 1 public void setattribute string name,string value 設定指定名字的屬性的值,並將它新增到session會話範圍內,如果這個屬性是會話範圍內存在,則更改該屬性的值。2 public obje...