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...