由互斥锁阻止的等待线程的执行顺序

voi*_*oid 5 windows multithreading mutex

我有一个互斥锁,可以控制从多个线程访问单个对象.线程完成后,互斥锁将被解锁,以允许订单线程对该对象进行操作.在Windows上使用WaitForSingleObject函数是否有一个命令线程被发信号?我希望现在允许第一个尝试锁定互斥锁的线程锁定互斥锁.这将是一个FIFO队列,因此发送到被阻塞线程的信号不是随机的.我是否必须实现自己的排队机制来实现这一目标?如果是这样,哪些功能有用?

Rem*_*anu 7

FIFO信令导致锁定车队.在较新版本的Win32 API上,通过macking互斥和其他同步原语明确不公平(即没有FIFO)来解决护航问题.

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