gpt4 book ai didi

c++ - 调用 ResetEvent() 时是否需要互斥或锁定?

转载 作者:可可西里 更新时间:2023-11-01 13:58:54 26 4
gpt4 key购买 nike

我继承了一些这样的代码:

m_mutex.Lock();
ResetEvent( m_hSyncObject );
m_mutex.Unlock();

SetEvent() 相同

在这种情况下是否需要这些互斥体 - 这些调用是否自行运行,或者我可以通过移除锁来逃脱吗?这个函数已经有一些我之前设为原子的值的 inc/dec,现在只有这些事件在锁中,所以如果可能的话,摆脱它们将是一个巨大的胜利。

最佳答案

这个额外的互斥几乎肯定是不需要的。 ResetEventSetEvent 函数本身可以安全地从多个线程调用

鉴于此代码确实存在,编写该代码的开发人员似乎很可能不理解他们创建的线程语义。我会高度怀疑任何依赖于该逻辑的代码。从长远来看,它可能会为您节省一些时间来继续并针对线程问题预先审核该代码

关于c++ - 调用 ResetEvent() 时是否需要互斥或锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10076169/

26 4 0