Question

J'ai créé un modèle pour exécuter des tâches de travail dans une application serveur à l'aide d'un pool de threads associé à un port d'achèvement d'E/S, comme indiqué dans les articles ci-dessous :

http://weblogs.asp.net/kennykerr/archive/2008/01/03/parallel-programming-with-c-part-4-i-o-completion-ports.aspx

http://blogs.msdn.com/larryosterman/archive/2004/03/29/101329.aspx

Existe-t-il des classes Boost qui peuvent aider avec ce modèle de programmation ?

Était-ce utile?

La solution

Pas vraiment, du moins, pas la dernière fois que j'ai regardé.Je veux dire, boost::thread_group pourrait rendre les choses légèrement plus ordonnées par endroits, mais pas de manière à faire une grande différence, je ne pense pas.

La prise en charge des threads de Boost semble légèrement utile lors de l'écriture de quelque chose de multiplateforme, mais étant donné que ce que vous écrivez sera de toute façon spécifique à Win32 (en raison de l'utilisation d'IOCP), cela ne semble pas vraiment y apporter beaucoup d'avantages. .

Autres conseils

Vous voudrez peut-être consulter le projet de pool de threads, qui ressemble à une belle implémentation de threadpool en plus de boost.Je ne l'ai pas essayé moi-même, mais ça a l'air plutôt sympa.

Je n'ai rien vu dans Boost qui aide avec la structure avec laquelle vous avez tendance à vous retrouver lorsque vous utilisez les ports de complétion d'E/S, mais je n'ai pas regardé cela récemment...Cependant, légèrement hors sujet, vous aimeriez peut-être jeter un œil au pool de threads basé sur IOCP qui fait partie de mon framework de serveur IOCP gratuit.Cela pourrait vous donner quelques idées, au moins.Vous pouvez trouver le code ici.Le pool de threads prend en charge l'expansion et la contraction en fonction de la demande et est utilisé dans les systèmes de production depuis plus de 6 ans.

AS possède des réacteurs que vous pouvez utiliser pour modéliser des éléments autour de vos IOCP.Certains d'entre eux auraient pu être ajoutés pour booster, mais boost rend leur construction assez facile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top