WaitForSingleObject - 从队列中等待线程吗?

Che*_*tah 7 c++ windows multithreading mutex

如果我设置3个线程来等待释放互斥锁,它们是否根据它们请求的顺序形成队列,或者它是未定义的行为(即我们不知道哪个将首先获取它)?

Han*_*ant 8

它在SDK文章中明确记录:

如果多个线程正在等待互斥锁,则选择等待线程.不要假设先进先出(FIFO)顺序.内核模式APC等外部事件可以更改等待顺序.

这些事件完全不受你的控制.因此,"未定义的行为"是描述它的适当方式.