因为涉及到并发,新手以前没有处理过这种业务 我的思路是是这样的 //查询红包剩余个数count和剩余额度num
//初始化队列 Queue q = new Queue(count);
lock(obj) { //入队操作 } //分配红包
//出队
//更新数据库
我思路有问题,不清楚这个锁该加在哪里,我想的是应该加在入队操作,但是这样我好像没办法判断什么时候队满,如果把整个锁起来的话队列又没有意义了,求前辈指点一下
我理解是不是先点击先抢红包,红包个数满了以后就不能在抢了? 这样是不是要把锁加在剩余个数查询、以及分配红包的整个过程呢?
队列一个重要特性是先进先出 你用队列的目的应该是为了保障先到先得 抢红包的几个主要关键点 1、收到请求,检查还有红包没有,有的话进入队列;如果没有红包,返回告知。 2、队列出队,检查剩余金额,和红包个数,根据红包分配规则给出队红包。 3、返回告知红包结果。