并发处理原创
7人赞赏了该文章
760次浏览
编辑于2020年07月01日 18:45:07
说明:
在软件开发过程中并发问题往往无法避免,我们软件主要是通过网控来规避并发,网控可以关联具体的操作,也可以在代码中直接调用,下面介绍两种常见规避并发方式。
方式:
业务后条件方式:既把取到的原始值作为后面执行条件,比如金额为1000,两用户同时取到并且都要扣减100,如果没有做并发规避处理,虽然各扣了100,但数据库还是900,这样一个用户的扣减就被覆盖了。由于事务提交在数据库是有先后的,如果把取到的1000做更新条件,则两个用户同时提交,则必然有个用户提交失败。
业务前网控方式:创建一张网控表,表中加个唯一性约束,用户在取数的时候向网控表插入一条唯一性约束数据, 用完之后删除网控表中的数据。比如:两个用户同时取数,由于取到的数据是一样的,故产生的唯一性约束也是相同的,它们向网控表中插入数据时必然有个用户失败,这样就确保了多个用户不能同时处理在相同的数据。
推荐阅读