卖火车票,有100张,有1000个用户同时来抢,很容易发生并发,多卖的情况。
思路方法一:
编写service层,把相关的业务逻辑在这里,并且把这个类实现static单例模式,加上synchronized,controller访问的时候,等待前一个controller执行完毕才进行。
思路二:
Db.update("update tableA set count = count -1 where id=?", id) //或者 update table set 库存数量-购买数 where 库存数量>=购买数
返回更新的记录数,大于0代表更新成功。
感觉大家都是用第二种方式吧?不用等,直接利用mysql本身的事务进行了
请教大家是用那个方式?晚点我把demo实现一下。
---最后使用了最后一个方法来实现。