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