gpt4 book ai didi

multithreading - WaitForMultipleObjects 与 CRITICAL_SECTION

转载 作者:行者123 更新时间:2023-12-03 12:57:03 27 4
gpt4 key购买 nike

我的理解是WaitForMultipleObjectsCRITICAL_SECTION旨在等待线程完成。并且它们都被描述为线程之间的进程和线程同步机制。如果它们旨在实现相同的目标,它们可以互换使用吗?如果不是,那么它们之间有什么区别?

最佳答案

它们不可互换并且用于不同的目的。

临界区是互斥体。包装在关键代码中的代码块一次可以由一个线程输入。这也称为序列化,因为 protected block 是串行执行的。
WaitForMultipleObjects函数及其各种相关函数用于阻塞,直到发出同步对象的信号。这可能是一个事件发出信号、一个线程完成、一个进程完成、一个互斥锁变得可用等。

通常使用等待函数来确保正确处理依赖关系。例如,如果一个计算只有在其他计算完成后才能继续,则将使用等待函数来阻止,直到其他计算完成为止。使用适当的等待功能而不是忙碌的旋转外观可以避免浪费时钟周期。

关于multithreading - WaitForMultipleObjects 与 CRITICAL_SECTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com