❶ java中悲觀鎖和樂觀鎖的區別
這和java沒多大關系
悲觀,就是sql上直接鎖(select id from table where id=1 for update nowait/wait 3),java捕捉異常,如果沒有異常,說明該條記錄沒有被別的鎖著,然後它鎖上。如果有異常,說明正被別的鎖著,它就不能鎖。
樂觀,指sql上取得該條記錄的更新日時(最好是timestamp型),然後更新語句中,把這個更新日時作為條件加上。如果能被正常更新(更新件數=1)則證明在此期間沒有被其他程序更新過,OK。如果不能被正常更新,則證明在此期間被其他程序更新過。
依照AP應用狀況,具體分析具體選擇使用