小米科技:Java并发编程:悲观锁和乐观锁机制( 二 )
乐观锁虽然会基于对比检测的手段判断更新的数据是否有变化 , 但是不确定数据是否变化完成 , 例如线程1读取的数据是A1 , 但是线程2操作A1的值变化为A2 , 然后再次变化为A1 , 这样线程1的任务是没有感知的 。
悲观锁每一次数据修改都要上锁 , 效率低 , 写数据失败的概率比较低 , 比较适合用在写多读少场景 。
乐观锁并未真正加锁 , 效率高 , 写数据失败的概率比较高 , 容易发生业务形异常 , 比较适合用在读多写少场景 。
是选择牺牲性能 , 还是追求效率 , 要根据业务场景判断 , 这种选择需要依赖经验判断 , 不过随着技术迭代 , 数据库的效率提升 , 集群模式的出现 , 性能和效率还是可以两全的 。
三、Lock基础方法lock:执行一次获取锁 , 获取后立即返回;
lockInterruptibly:在获取锁的过程中可以中断;
tryLock:尝试非阻塞获取锁 , 可以设置超时时间 , 如果获取成功返回true , 有利于线程的状态监控;
unlock:释放锁 , 清理线程状态;
【小米科技:Java并发编程:悲观锁和乐观锁机制】newCondition:获取等待通知组件 , 和当前锁绑定;
推荐阅读
- 科技一哥|荣耀30青春版图集赏析:触觉与视觉的完美享受
- 科技犬君|vs 索尼A9G 谁强?,上半年用户喜爱手机盘点;小米电视大师65英寸OLED
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 柠檬少年|,批发单请参考 7-1,华为,OV,苹果,小米
- HAO懂科技|小米“神机”要来了?,小米正式“反击”!上下对折+骁龙865
- 阿拉图图科技说|而给华为仅仅是800万枚!,台积电为苹果准备8000万枚芯片
- 网罗说科技|三星note10一夜成“中端机”,还是256GB+3500mAh,三星扛不住了
- 科技数码迷|华为+荣耀别不报!入门级机型你们真没有Redmi良心
- 「小米科技」小米11Pro宣布新技术!首发骁龙875+屏下镜头,米粉:价格有点小贵
- 『华为mate』你觉得小米8还能再战多久