Windows IOCP 文档 就
GetQueuedCompletionStatus
说明了这一点:
阻塞在 I/O 完成端口上执行的线程按后进先出 (LIFO) 顺序释放,下一个完成数据包从该线程的 I/O 完成端口的 FIFO 队列中拉出。
考虑具有线程 T1 和 T2 的场景:
GetQueuedCompletionStatus
并被阻止。GetQueuedCompletionStatues
并被阻止。现在,鉴于上述线程“按后进先出(LIFO)顺序释放”的声明,T1 是否会保持等待状态直到释放 T2 以满足 LIFO 顺序?