C#线程等待句柄
来源:互联网 发布:成都app软件开发 编辑:程序博客网 时间:2024/05/29 16:30
互斥对象 Mutex
private Mutex m = new Mutex();public void Method(){ m.WaitOne(); //执行操作 m.ReleaseMutex();}
共享资源Semaphore
Semaphore是一个信号量,可以让多个资源分类型的同时进行。书中一个重要的有代表性的例子就是图书馆有多个电脑,有若干个人使用电脑的问题。是一个不错的例子。
有一个计数器,当信号量达到指定的最大值,就会阻塞。等待释放信号。方便协调工作。
思考:semaphore可以用作某个需要大量发送数据,但是有限的线程来处理的情况,比如说1200个人需要同时受到一条信息,但是用了40个线程来发送。
轻量级的SemaphoreSlim
SemaphoreSlim和semaphore的作用是一样的。但是SempahoreSlim是轻量级的,不是内核级别的,所以消耗资源比较少,效率更高,个人十分喜欢轻量级的东西。
EventWaitHandle 等待事件的发生
主要分为:ManualResetEvent和AuthoResetEvnt两个
主要是设计一个无限循环的函数来等待条件到来以后执行某个事情。在事情到来前,先停下来等待。
个人在现货交易软件中,行情的发送使用了ManualRestEvent。因为我们无法确定行情什么时候到来,所以让行情到来之前等待,行情一旦受到,立马.Set(),释放信号。
CountDownEvent 倒计时计数器
当所有的计数到了0以后,阻塞才会放开,让系统继续执行。
这个函数可以用在需要多个线程执行某些操作,条件具备以后。开始执行下一步的操作,比如在金融分析系统登录前,我们需要下载系统品种,历史数据,新闻消息,等等多个信息的下载,这些信息的下载不适合在一个线程中去执行。我们把每个操作一个线程,等这些线程都结束以后,我们开始开启主程序。用CountDownEvent非常合适
分阶段同步 Barrier
书中举得例子很好,小王和小李相约去参观鸟巢,小王和小李各自从自己的家出发,会到鸟巢门口集合。集合以后去参观鸟巢,参观完了以后。然后各自回家。
小王和小李,每个人的情况不一样,所以他们需要等待彼此都到了鸟巢以后,再开始参观,参观的时间可能也不太一样,等参观完了,需要集结。然后再各自回家,每一个集结点,都是一个分步。适合用barrier.
- C#线程等待句柄
- (三)线程--等待句柄
- WaitForSingleObject 等待线程句柄
- WaitForSingleObject 等待线程句柄
- 线程同步之等待句柄
- C#等待句柄实现异步
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex (转)
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex(ZT)
- c# 线程同步:详解lock,monitor,同步事件和等待句柄以及mutex
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(上)(转)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中) (转)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(下) (转)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(上)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
- 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(下)
- Javascript 删除数组的指定元素
- 向表中插入一个字段
- Servelet 如何访问数据库
- 关于hibernate 注解 OnetoOne 或 ManyToOne 写法
- TextView 控件设置以及动态给布局添加控件
- C#线程等待句柄
- 哈希表及处理冲突的方法
- springMVC学习笔记-环境配置
- 8天学通MongoDB——第八天 驱动实践
- SQL 知识点
- 《C语言及程序设计》实践项目——枚举应用
- 介绍个比较简单的word转pdf方法
- nyoj20 吝啬的国度 (无根树转换为实根树)
- Struts2 访问首页时经过Action加载数据