全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#多线程之Semaphore用法详解

Semaphore:可理解为允许线程执行信号的池子,池子中放入多少个信号就允许多少线程同时执行。

private static void MultiThreadSynergicWithSemaphore()
  {
   //0表示创建Semaphore时,拥有可用信号量数值
   //1表示Semaphore中,最多容纳信号量数值
   Semaphore semaphore = new Semaphore(0, 1);


   Thread thread1 = new Thread(() =>
   {
    //线程首先WaitOne等待一个可用的信号量
    semaphore.WaitOne();
    //在得到信号量后,执行下面代码内容
    Console.WriteLine("thread1 work");
    Thread.Sleep(5000);
    //线程执行完毕,将获得信号量释放(还给semaphore)
    semaphore.Release();
   });


   Thread thread2 = new Thread(() =>
   {
    semaphore.WaitOne();
    Console.WriteLine("thread2 work");
    Thread.Sleep(5000);
    semaphore.Release();
   });
   thread2.Start();
   thread1.Start();
   //因在创建Semaphore时拥有的信号量为0
   //semaphore.Release(1) 为加入1个信号量到semaphore中
   semaphore.Release(1);
  }

说明:

1、如果semaphore.Release(n),n>semaphore最大容纳信号量,将出异常。
2、当semaphore拥有的信号量为1时,Semaphore相当于Mutex
3、当semaphore拥有的信号量>1时,信号量的数量即可供多个线程同时获取的个数,此时可认为获取到信号量的线程将同时执行(实际情况可能与CPU核心数、CPU同时支出线程数有关)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# C#  # 多线程  # Semaphore  # C#使用SemaphoreSlim实现并发控制与限流策略的实战指南  # C#多线程同步:Mutex与Semaphore的区别及使用场景详解  # C#通过Semaphore类控制线程队列的方法  # C#使用semaphore来管理异步下载请求的方法  # C# Semaphore与SemaphoreSlim区别小结  # 信号量  # 量为  # 多个  # 最多  # 实际情况  # 可供  # 能与  # 大家多多  # 多少个  # MultiThreadSynergicWithSemaphore  # void 


相关文章: 专业网站建设制作报价,网页设计制作要考什么证?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  nginx修改上传文件大小限制的方法  如何注册花生壳免费域名并搭建个人网站?  无锡营销型网站制作公司,无锡网选车牌流程?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  网站制作知乎推荐,想做自己的网站用什么工具比较好?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  建站主机选虚拟主机还是云服务器更好?  如何选择高效可靠的多用户建站源码资源?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何通过服务器快速搭建网站?完整步骤解析  建站VPS推荐:2025年高性能服务器配置指南  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  济南网站制作的价格,历城一职专官方网站?  学校建站服务器如何选型才能满足性能需求?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何快速搭建虚拟主机网站?新手必看指南  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  建站为何优先选择香港服务器?  如何在橙子建站上传落地页?操作指南详解  如何选择PHP开源工具快速搭建网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  北京网站制作网页,网站升级改版需要多久?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何在IIS服务器上快速部署高效网站?  建站之星与建站宝盒如何选择最佳方案?  实例解析Array和String方法  建站ABC备案流程中有哪些关键注意事项?  建站主机无法访问?如何排查域名与服务器问题  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何用狗爹虚拟主机快速搭建网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何挑选优质建站一级代理提升网站排名?  ,巨量百应是干嘛的?  如何快速生成专业多端适配建站电话?  如何快速登录WAP自助建站平台?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何用花生壳三步快速搭建专属网站?  如何快速搭建二级域名独立网站?  深入理解Android中的xmlns:tools属性  如何配置FTP站点权限与安全设置?  如何零基础开发自助建站系统?完整教程解析  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何在宝塔面板中创建新站点?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  开封网站制作公司,网络用语开封是什么意思?  宝塔建站助手安装配置与建站模板使用全流程解析 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。