首页 综合 > 正文

通过Queue 类解决C#数据并发问题 世界时快讯

2023-03-09 03:57:11 来源:腾讯云


(相关资料图)

有一个秒杀场景,产品库存只有5个,谁先抢到谁可以买,于是如何去界定这5个产品的归属;当然你可以说以时间,可以但容易出错,因为这个时间就需要到豪秒级的判断了。

那有什么其他办法呢?最近用到了一个Queue 类,这个类的好处是:对象的先进先出集合,就是说进入早的就出的早,晚的就晚出,这个好理解吧。这样就解决多线程下的出入问题。

我们还是举个例子吧,上代码。

Queue car= new Queue();// car.Enqueue("A乘客");car.Enqueue("B乘客");   car.Enqueue("C乘客");   //乘客列表foreach (Object obj in car){    Console.Write("    {0}", obj);}Console.WriteLine($"乘客总数量:"+car.Count+"个");//乘客下车Console.WriteLine("\r\n(Dequeue)\t{0}", car.Dequeue());

上面的代码就一个简单的先进先出例子,乘客排序上车,然后由先进的进行下车。

当然上面只是简单地描述了一下Queue 的用途,它除了刚提到的Dequeue() 方法还有一个Enqueue()进行元素添加都结尾的方法,还有2个比较好用的方法: Queue.CopyTo(Array, Int32) 这个是将元素复制到指定的一维数组中及Queue.ToArray将元素复制到新数组的方法。

功能和方法由于时间关系就不在这里一一提及了,感兴趣的自己去研究吧。最后,只是告诉你有这么一个类,怎么应用和如何用就根据自己的需求去了解吧。

标签:

通过Queue 类解决C#数据并发问题 世界时快讯

有一个秒杀场景,产品库存只有5个,谁先抢到谁可以买,于是如何去界定这5个产品的归属;当然你可以说以时间,可以但容易出错,因为这个时间就

2023-03-09

qq小秘密在哪里如何知道是谁_qq小秘密在哪里-焦点讯息

1、1 首先,我们打开qq,点击下面的动态。2、2 点击好友消息,点击谈论。3、3 滑动功能栏,找到小秘密,点击回车。本

2023-03-08

开盘是什么意思是现房还是期房_开盘是什么意思

1、开盘是指项目对外集中公开发售,特别是首次大卖。2、通过有效整合公司内外资源,对目标客户进行针对性的有效价值信息传递,

2023-03-08

热熔胶棒_热熔枪|看点

1、要正常使用热熔胶枪,需要准备如下图所示的胶棒。胶棒可以通过后面的孔插入热熔枪,如下图箭头2所示,然后插到底。2、热熔

2023-03-08

环球热点评!南通大学杏林学院官网主页_南通大学杏林学院值得

1、医学系还不错~转系也不是很难我就是杏林的!而且还是学医的,可一转专业,不过个别专业不是太好转。2、比如全科,但是康复

2023-03-08

阿鲁巴岛属于哪个洲哪个国家

阿鲁巴岛位于北美洲,现在是一个隶属于荷兰王国的独立政治实体。阿鲁巴:位于加勒比海南部小安的列斯群岛的最西端,南临委内瑞拉,面积193平方

2023-03-08
x 广告
x 广告

Copyright ©   2015-2023 华夏体育网版权所有  备案号:琼ICP备2022009675号-37   联系邮箱:435 227 67@qq.com