boost asio io_service.run ()

Je viens d'aller sur le asio serveur de chat exemple. Ma question est au sujet de leur utilisation de la io_service.run() fonction. La documentation pour la io_service.run() fonction dit:

La fonction run() bloque jusqu'à ce que tout le travail est terminé et il n'y a pas
plus les gestionnaires à être distribué, ou jusqu'à ce que le io_service a été
arrêté. Plusieurs threads peuvent appeler la fonction run() pour définir un
pool de threads à partir de laquelle le io_service peut exécuter des gestionnaires. Tous
les threads sont en attente dans la piscine sont équivalentes et la io_service
peut choisir l'un d'eux pour appeler un gestionnaire. La fonction run()
peut être appelé en toute sécurité à nouveau une fois qu'il a terminé qu'après un appel à
reset().

Il est dit que la fonction d'exécution sera de retour, et je suppose que quand il ne le réseau thread s'arrête jusqu'à ce qu'il est appelé à nouveau. Si cela est vrai, alors pourquoi ne pas l'exécution de la fonction appelée dans une boucle, ou au moins compte tenu de son propre thread? le io_service.run() fonction est un peu un mystère pour moi.

source d'informationauteur Chris H