
Envoyé par
ram-0000
Je ne parlerai dans cette réponse que du mode "completion routine", je ne connais pas le mode overlapped.
Dans ce mode, tu crées un pool de thread (en général, un par CPU ou par coeur) et tu associe ces threads avec un completion port.
Ensuite, à chaque fois que tu crées une socket, tu associes aussi cette socket avec le completion port.
Lorsqu'une action peut être réalisée sur un des sockets associé au completion port (read possible, fin de write, accept entrant, close reçu), un des thread associés au completion port est réveillé afin de faire le boulot. Donc les routines sont appelées dans le contexte d'un des threads associé au completion port et pas de le contexte du thread utilisateur.
Ce mode est le mode le plus performant des différents modes possible pour travailler avec les socket, c'est aussi (à mon avis) le plus délicat à comprendre et à mettre en oeuvre.
Partager