Java教程

java陷阱之不可忽视的并发操作

本文主要是介绍java陷阱之不可忽视的并发操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

业务需求.商家针对采购需求发货生成供货单

代码逻辑:

           1.开启事物

           2.根据采购需求查询所属供货单已发货数量

           3.根据采购需求采购数量>已发货才允许供货单

           4.满足2条件插入发货指定发货数量的供货单

           5.commit事物

错误思维 商家一个一个进行发货。不存在并发。就不考虑原子性。

出现问题:

           1.数据库因为高峰期 峰值上去 商家发货 1、3、4因为数据库高峰期sql阻塞。

           2.前端没有做重复提交。或者因为超时异常取消重复提交按钮。

           3.商家再次进行发货。导致重复发货

解决方式:

            1.不应该基于人的觉得来考虑并发

            2.虽然有的是单个人操作。但是保证原子性的地方都需要加锁

这篇关于java陷阱之不可忽视的并发操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!