ASP.NET-asp.net临界资源控制问题??

ASP.NET-asp.net临界资源控制问题??

夜无邪 发布于 2017-03-14 字数 207 浏览 1005 回复 2

如题~~例如我要做一个购票系统,票的剩余数存在数据库里,在有很多人同时购票的时候,怎么才能防止不同的人购买到同一张票???
如果通过存储过程进行购买后剩余票数减一的操作是不是能够防止并发冲突~~~~??

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2017-08-18 2 楼

对购票,出票的方法的“票ID”进行加锁,变成原子操作,对于同一张票,只允许一个请求占有资源去访问,出票后,将该票从“待售票”的池或库中去除掉。

清晨说ぺ晚安 2017-07-18 1 楼

简单的流程就是库存查询、表锁定、出入库操作
更详细点,采用多个线程同时访问,只让其中一个线程最先取得数据并对其加锁,其它线程则阻塞直到取得数据的线程执行完,此时被加锁的数据得到释放(解锁),其它线程得到通知取得数据继续执行。
上面这个方法最大的缺点就是用户等待时间长。另一个方法是采用缓存机制,先把用户请求放到缓存中,达到一定数量的时候分批顺序访问数据,当缓存中的请求达到一定数量的时候(达到票数)禁止用户请求。