1
在Windows中是否有任何可與select()(除套接字)一起使用的同步形式?例如,Linux有eventfd在Win32中對本地事件使用select()
在Windows中是否有任何可與select()(除套接字)一起使用的同步形式?例如,Linux有eventfd在Win32中對本地事件使用select()
Windows套接字實現對齊到BSD套接字,而也有Windows特定synchronization functions(我假設,Windows套接字實現在內部使用它們)。
看一看在Create*()
功能可等待的對象類型,如互斥,信號,自旋鎖,事件和定時器(自Windows XP),並使用帶有類型特定的功能大致如下:
等待,直到指定的對象處於已發信號狀態或超時時間間隔過去。
等待直到一個或所有指定的對象的是在信號狀態或超時間隔過去。
WaitForMultipleObjects()
可以使用HANDLE
小號
何時被視爲等同於
select()
使用'WSAEventSelect',插座事件可以與其他HANDLE類型的事件進行多路複用。 –小心 - 對於高性能服務器,這些等待函數限制爲64個句柄,所以這不是最佳方式 – paulm
@ paulm:好點。但是最佳的方式是什麼?根據實際情況,可能會有阻塞隊列(儘管傳入連接有積壓),M個線程用於M <= 64個句柄或直接回調。如果HANDLE必須執行大量任務,那麼服務可能會高效運行。 – Sam