对于上面七种实现并发的方式,做一下总结:
- 一、二方式是在代码中利用锁和事务的方式解决了并发问题,主要解决的是锁要加载事务之前
- 三、四、五方式主要是数据库的锁来解决并发问题,方式三是利用for upate对表加行锁,方式四是利用update来对表加锁,方式五是通过增加version字段来控制数据库的更新操作,方式五的效果最差
- 六、七方式是通过队列来解决并发问题,这里需要特别注意的是,在代码中不能通过throw抛异常,否则消费线程会终止,而且由于进队和出队存在时间间隙,会导致商品少卖。
对于上面七种实现并发的方式,做一下总结: