当前位置: 首页 > news >正文

Windows 同步技术-计时器队列和内存屏障

计时器队列

CreateTimerQueue 函数为计时器创建队列。 此队列中的计时器(称为 计时器队列计时器)是轻量级对象,可用于指定要在指定到期时间到达时调用的回调函数。 等待作由 线程池中的线程执行。

若要将计时器添加到队列,请调用 CreateTimerQueueTimer 函数。 若要更新计时器队列计时器,请调用 ChangeTimerQueueTimer 函数。 可以指定要在计时器过期时由线程池中的工作线程执行的回调函数。

若要取消挂起的计时器,请调用 DeleteTimerQueueTimer 函数。 完成计时器队列后,调用 DeleteTimerQueueEx 函数以删除计时器队列。 队列中所有挂起的计时器将被取消并删除。

同步屏障

同步屏障使多个线程可以等待,直到所有线程都到达特定执行点,然后再继续任何线程。 无法跨进程共享同步屏障。

同步屏障对于分阶段计算非常有用,其中并行执行相同代码的线程必须在继续下一个阶段之前完成一个阶段。

若要创建同步屏障,请调用 InitializeSynchronizationBarrier 函数,并指定线程在阻止之前应旋转的最大线程数以及线程的旋转次数。 然后启动将使用屏障的线程。 每个线程完成其工作后,它会调用 EnterSynchronizationBarrier 等待屏障。 EnterSynchronizationBarrier 函数会阻止每个线程,直到屏障中阻塞的线程数达到屏障的最大线程计数,此时 EnterSynchronizationBarrier 取消阻止所有线程。 EnterSynchronizationBarrier 函数针对进入屏障的线程之一返回 TRUE,并为所有其他线程返回 FALSE。

若要在不再需要同步屏障时释放同步屏障,请调用 DeleteSynchronizationBarrier。 调用 EnterSynchronizationBarrier 后立即调用此函数是安全的,因为该函数可确保所有线程在释放前都使用屏障完成。

如果永远不会删除同步屏障,则线程可以在进入屏障时指定 SYNCHRONIZATION_BARRIER_FLAGS_NO_DELETE 标志。 使用屏障的所有线程都必须指定此标志;如果没有任何线程,则忽略该标志。 此标志会导致函数跳过删除安全性所需的额外工作,从而提高性能。 请注意,当此标志生效时删除屏障可能会导致句柄访问无效,以及一个或多个永久阻止的线程。

http://www.xdnf.cn/news/97903.html

相关文章:

  • 32单片机——GPIO的工作模式
  • 工具指南:免费将 PDF 转换为 Word 的 10 个工具
  • [蓝桥杯 2025 省 Python B] 最多次数
  • 数据一致性问题剖析与实践(三)——分布式事务的一致性问题
  • MIT IDSS深度解析:跨学科融合与系统科学实践
  • 【正则表达式】核心知识点全景解析
  • 【解决】layui layer的提示框,弹出框一闪而过的问题
  • 12、高阶组件:魔法增幅器——React 19 HOC模式
  • 深入详解Java中的@PostConstruct注解:实现简洁而高效初始化操作
  • java记忆手册(2)
  • python 更换 pip 镜像源
  • 书香换绿意,爱心已成荫|平安养老险陕西分公司“以书换植”公益活动
  • 区块链技术在物联网中的应用:构建可信的智能世界
  • 微任务与宏任务
  • Linux命令-tcpdump
  • On the Biology of a Large Language Model——Claude团队的模型理解文章【论文阅读笔记】其一CLT与LLM知识推理
  • Android APP 爬虫操作
  • 集结号海螺捕鱼游戏源码解析(第三篇):拉霸机模块开发详解与服务器开奖机制
  • 【爬虫工具】2025微博采集软件,根据搜索关键词批量爬帖子,突破50页限制!
  • 2025职业本科网络安全课程体系设计:如何培养行业急需的实战型人才?
  • VulnHub-DarkHole_2靶机渗透教程
  • 高并发下单库存扣减异常?飞算 JavaAI 自动化生成分布式事务解决方案
  • iOS18 MSSBrowse闪退
  • 【PCB工艺】推挽电路及交越失真
  • 关于大数据的基础知识(四)——大数据的意义与趋势
  • 计算机网络 第二章:应用层(四)
  • redis组件在PAAS平台运维总结
  • Jmeter中同步定时器使用注意点
  • RPC通信原理实战
  • 香港服务器租用需要哪些性能要求