猿问

这个并发问题怎么解决

游戏中有一个交易所,交易所里面有道具出售,如果两个人同时去买,怎么防止并发呢,实际情况应该是这两个人买的时候肯定有先后的,时间差只是很小,第二个人买的时候应该提示已经被买走。整个交易所的数据是一个集合存在内存里的

qq_花开花谢_0
浏览 279回答 2
2回答

芜湖不芜

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的地方排队等待。

胡子哥哥

这不是并发,是线程同步,给加个锁
随时随地看视频慕课网APP
我要回答