为了账号安全,请及时绑定邮箱和手机立即绑定

这个并发问题怎么解决

这个并发问题怎么解决

qq_花开花谢_0 2018-10-25 09:10:52
游戏中有一个交易所,交易所里面有道具出售,如果两个人同时去买,怎么防止并发呢,实际情况应该是这两个人买的时候肯定有先后的,时间差只是很小,第二个人买的时候应该提示已经被买走。整个交易所的数据是一个集合存在内存里的
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

1 class GameBiz
2 {
3     Hashtable data;
4
5     public void Buy()
6     {
7         lock(data)
8         {
9             //交易...
10          }
11     }
12
13     public void Sell()
14     {
15         lock(data)
16         {
17             //交易...
18         }
19     }
20 }

 

差不多是这么个流程。

这样做,不管是在买还是在卖,都会保证同时只有一个线程在做这件事,其他的线程会在lock的地方排队等待。


查看完整回答
反对 回复 2018-10-29
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这不是并发,是线程同步,

给加个锁


查看完整回答
反对 回复 2018-10-29
  • 2 回答
  • 0 关注
  • 278 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信