考虑以下方案:

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. Flex 布局详解 - 转自阮一峰老师
  2. ORACLE中的imp和exp
  3. 编程之美-寻找发帖“水王”方法整理
  4. SpringBoot指定服务项目名
  5. redis rdb aof区别_聊一聊RDB、AOF在redis持久化里的底层原理
  6. OK6410裸机程序---hello world
  7. linux 转码软件,分享|Linux 桌面中 4 个开源媒体转换工具
  8. 前端开发工程师,找工作应该选择大公司还是小公司?
  9. Web前端新手一定要知道的几个框架!
  10. linux下的chromedriver驱动器配置实例(含代码)
  11. [置顶]       jQuery旋转插件—rotate
  12. M427手动双面改自动双面
  13. 漏洞补丁:漏洞命名(CVE和CNNVD)及补丁查找
  14. 【Fltk】Fltk1.3.3+VS2015 编程
  15. IntelliJ IDEA快速入门 | 第九篇:IntelliJ IDEA中的常用配置(一)——设置IntelliJ IDEA的主题
  16. RS485串口模块详解RS232、RS485、RS485
  17. 服务器位置异常饿了么,饿了么定位失败怎么办 饿了么无法定位解决办法
  18. 国产麒麟系统为何饱受争议?
  19. vbox虚拟机上装了银行的网络认证软件后不能正常使用的问题
  20. 大华技术股份有限公司测开笔试题分享

热门文章

  1. centos7 ip addr不显示ip地址解决参考
  2. java boxplot_箱线图(boxplot)简介与举例
  3. redis分布式锁工具类
  4. 【java】kfc收银系统实现(可视化)
  5. 抖音短视频账号怎么运营,如何提高账号权重?
  6. 计算机常用办公软件应用书籍,清华大学出版社-图书详情-《大学计算机基础——常用办公软件》...
  7. JDK默认GC算法是个谜
  8. 学习笔记——exec族函数详解(execl, execlp, execle, execv, execvp, execvpe )
  9. js模块化html,js模块化框架
  10. 2022 年全球10大最佳自动化测试工具