永发信息网

java什么是乐观锁?什么是悲观锁?

答案:2  悬赏:50  手机版
解决时间 2021-03-15 22:44
  • 提问者网友:浮克旳回音
  • 2021-03-15 06:19
java什么是乐观锁?什么是悲观锁?
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-03-15 06:41
保证数据安全,处理多用户并发访问。悲观锁,锁如其名,他对世界是悲观的,他认为别人访问正在改变的数据的概率是很高的,所以从数据开始更改时就将数据锁住,知道更改完成才释放。乐观锁,他对世界比较乐观,认为别人访问正在改变的数据的概率是很低的,所以直到修改完成准备提交所做的的修改到数据库的时候才会将数据锁住。完成更改后释放。悲观锁会造成访问数据库时间较长,并发性不好,特别是长事务。乐观锁在现实中使用得较多,厂商较多采用。
全部回答
  • 1楼网友:一叶十三刺
  • 2021-03-15 06:53
这和java没多大关系 悲观,就是sql上直接锁(select id from table where id=1 for update nowait/wait 3),java捕捉异常,如果没有异常,说明该条记录没有被别的锁着,然后它锁上。如果有异常,说明正被别的锁着,它就不能锁。 乐观,指sql上取得该条记录的更新日时(最好是timestamp型),然后更新语句中,把这个更新日时作为条件加上。如果能被正常更新(更新件数=1)则证明在此期间没有被其他程序更新过,ok。如果不能被正常更新,则证明在此期间被其他程序更新过。 依照ap应用状况,具体分析具体选择使用
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯