¿Cuál es la diferencia entre WaitForMultipleObjects y boost :: asio en varias ventanas :: basic_handle's?

Tengo una lista de MANEJOS, controlada por muchos dispositivos IO diferentes. ¿Cuál sería la diferencia (de rendimiento) entre:

Una llamada a WaitForMultipleObjects en todos estos identificadoresasync_read en boost :: windows :: basic_handle está alrededor de todos estos identificadores

¿Es WaitForMultipleObjects O (n) complejo de tiempo con n la cantidad de identificadores?
De alguna manera puede llamar a async_read en windows :: basic_handle ¿verdad? ¿O es errónea esa suposición?
Si llamo a ejecutar en el mismo dispositivo IO en varios subprocesos, ¿se equilibrarán las llamadas de manejo entre esos subprocesos? Ese sería un beneficio importante de usar asio.

Respuestas a la pregunta(2)

Su respuesta a la pregunta