Qual é a diferença entre WaitForMultipleObjects e boost :: asio em várias janelas :: basic_handle's

Tenho uma lista de PUNHOS, controlados por vários dispositivos IO diferentes. Qual seria a diferença (de desempenho) entre:

Uma chamada para WaitForMultipleObjects em todas essas alçasasync_read on boost :: windows :: basic_handle está em torno de todas essas alças

WaitForMultipleObjects O (n) tempo é complexo com n a quantidade de identificadores?
Você pode, de alguma forma, chamar async_read em uma janela :: basic_handle, certo? Ou essa suposição está errada?
Se eu chamo executar no mesmo dispositivo de E / S em vários threads, as chamadas de manipulação serão equilibradas entre esses threads? Isso seria um grande benefício do uso do asio.

questionAnswers(2)

yourAnswerToTheQuestion