考虑以下方案:

Event Signaled | Thread 1 | Thread 2 | Thread 3

---------------------------------------------------------

false | SetEvent() | |

true | | |

true | | Wait Complete |

false | | |

false | SetEvent() | |

true | | |

true | | | Wait Complete

false | | |

成功

Event Signaled | Thread 1 | Thread 2 | Thread 3

---------------------------------------------------------

false | SetEvent() | |

true | | |

true | SetEvent() | |

true | | |

true | | Wait Complete |

false | | |

false | | | Wait does not complete

false | | |

失败

取决于哪个线程获得在特定的时间来执行,你可能会或可能不会完成等待其他线程。

您应该将事件更改为手动重置事件以确保所有线程都会完成等待,并在需要时使用ResetEvent将事件设置回非信号。

还有其他选择,例如使用semaphore来控制访问,或者如果您计划只等待很短的时间(旋转锁定性能),但是手动重置事件似乎是要走的路线,则可以使用critical section 。一般来说,请查看synchronization objects。

c语言setevent线程互斥,是否每个调用SetEvent的autoreset事件都会唤醒一个线程?相关推荐

  1. python 线程中出现执行错乱_多处理会导致Python崩溃,并在调用fork()时在另一个线程中出现错误...

    我对Python还比较陌生,并尝试为for循环实现一个多处理模块. 我有一个图像url数组存储在img_url中,我需要下载并应用一些Google vision.if __name__ == '__m ...

  2. 线程类中如何调用service_你真的了解Java多线程吗?

    一.程序.进程和线程.单核CPU和多核CPU.并行与并发 什么是程序? 程序是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码. 什么是进程? 进程是指程序的一次执行过程,或是正在运 ...

  3. Boost库实现线程池学习及线程实现的异步调用

    A.Boost线程池实现 参考自: Boost库实现线程池实例 原理:使用boost的thread_group存储多个线程,使用bind方法将要处理的函数转换成线程可调用的函数进行执行:使用队列存储待 ...

  4. Python 线程互斥锁 Lock - Python零基础入门教程

    目录 一.前言 二.Python 线程共享全局变量 三.Python 线程互斥锁 1.创建互斥锁 2.锁定资源/解锁资源 四.Python 线程死锁 五.重点总结 六.猜你喜欢 一.前言 在前一篇文章 ...

  5. linux进程线程同步之 - POSIX线程互斥锁

    POSIX线程互斥锁 使用范围:线程同步 本文转自:http://blog.csdn.net/jiebaoabcabc/article/details/37914769 一.函数介绍 1.初始化互斥锁 ...

  6. QT多线程(三)线程互斥与同步

    前言 线程之间存在着相互制约的关系: 互斥关系,如线程争夺I/O设备而导致一方必须等待一方使用结束后方可使用 同步关系,完成同一任务的线程之间,需要协调它们的工作而相互等待.交互 临界区 先看这个类: ...

  7. 『Linux』第九讲:Linux多线程详解(三)_ 线程互斥 | 线程同步

    「前言」文章是关于Linux多线程方面的知识,上一篇是 Linux多线程详解(二),今天这篇是 Linux多线程详解(三),内容大致是线程互斥与线程同步,讲解下面开始! 「归属专栏」Linux系统编程 ...

  8. 互斥锁实现线程互斥(嵌入式学习)

    互斥锁实现线程互斥 互斥锁的概念 互斥锁的函数 示例代码 互斥锁的概念 互斥锁(Mutex)是一种用于多线程编程的同步原语(synchronization primitive),用于实现线程之间的互斥 ...

  9. 网络编程-线程,守护线程,线程互斥锁-26

    网络编程-线程,守护线程,线程互斥锁-26 内容: 进程部分: 进程间通信=>IPC 生产者消费者模型() 线程部分: 1. 线程理论() 2.开启线程的两种方式() 3. 线程对象其他相关的属 ...

最新文章

  1. Caffe源码中各种依赖库的作用及简单使用
  2. CISCO交换机配置命令之二
  3. ElasticSearch Java Api(二) -检索索引库
  4. 运行时库例程-acc_get_num_devices
  5. Assign the task HDU - 3974(线段树+dfs建树+单点查询+区间修改)
  6. PyChram简单使用教程
  7. 修改网页代码_网站建设中使用简洁规范代码的重要性
  8. iOS 7.1下itms-services在线安装失败的解决方法
  9. 棋牌游戏服务器设计(1)
  10. EasyUI可编辑列
  11. 10部程序员必看的纪录片
  12. 芯片破壁者(十二.下):青瓦台魔咒与半导体“死亡谷”
  13. win10系统打不开qq提示错误代码0x00000005怎么办
  14. 金财致远咨询有限公司莅临美和易思参观交流
  15. 开始愉快的学习编程了
  16. 做一件事如何突破「擅长」达到「精通」
  17. 关于Ubuntu18.04安装后没有gcc、make、网卡驱动的问题总结以及解决办法
  18. 爬取网易云音乐排行榜
  19. Java微信公众号开发入门:一、微信公众号简介
  20. 周杰伦微信红包封面,虎年限量版

热门文章

  1. Spring Boot 官方文档中文版
  2. 软文营销如何将冗长乏味的句子转化成简单有力的文案
  3. Lizards and Basements 2
  4. Hive sql 中 order by、sort by、distribute by、cluster by用法
  5. DataNode节点下线速度优化
  6. Eureka主动下线机制
  7. 用MARP输出PPTX文件,不能用powerpoint软件修改,这是正常现象吗?如何才可以修改?
  8. U盘多分驱如何格式化
  9. 05. SpringBoot整合mybatis
  10. php 舞伴配对,舞伴配对