❶ java中悲观锁和乐观锁的区别
这和java没多大关系
悲观,就是sql上直接锁(select id from table where id=1 for update nowait/wait 3),java捕捉异常,如果没有异常,说明该条记录没有被别的锁着,然后它锁上。如果有异常,说明正被别的锁着,它就不能锁。
乐观,指sql上取得该条记录的更新日时(最好是timestamp型),然后更新语句中,把这个更新日时作为条件加上。如果能被正常更新(更新件数=1)则证明在此期间没有被其他程序更新过,OK。如果不能被正常更新,则证明在此期间被其他程序更新过。
依照AP应用状况,具体分析具体选择使用