2008-08-31 16 views
4

J'ai créé un modèle pour l'exécution des tâches de travail dans une application serveur à l'aide d'un pool de threads associé à un port d'achèvement IO tel que représenté dans les postes ci-dessous:Tâche mise en commun de fil orienté

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

Y a-t-il des classes en boost qui peuvent aider avec ce modèle de programmation?

Répondre

1

Pas vraiment, du moins, pas la dernière fois que j'ai regardé. Je veux dire, boost :: thread_group pourrait rendre les choses marginalement plus ordonnées à certains endroits, mais pas comme cela ferait une grande différence, je ne pense pas.

La prise en charge de thread de Boost semble être très utile pour écrire quelque chose de multi-plateforme, mais étant donné que ce que vous écrivez va être spécifique à Win32 (en raison de l'utilisation d'IOCP), il ne semble pas y avoir beaucoup d'avantages de cela.

1

Vous voudrez peut-être jeter un coup d'œil au threadpool project, qui ressemble à une belle implémentation de pool de threads en plus de boost. Je ne l'ai pas essayé moi-même, mais ça a l'air plutôt sympa.

1

Je n'ai rien vu de boost qui aide à la structure que vous avez tendance à utiliser avec les ports d'accomplissement IO, mais je n'ai pas regardé cela récemment ... Cependant, légèrement hors-sujet, vous J'aimerais jeter un coup d'œil au pool de threads basé sur IOCP qui fait partie de mon infrastructure de serveur IOCP gratuite. Cela pourrait vous donner quelques idées si rien d'autre. Vous pouvez trouver le code here. 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.

0

ACE a quelques réacteurs que vous pouvez utiliser pour modéliser les choses autour de vos IOCPs. Certains d'entre eux auraient pu être ajoutés pour booster, mais boost rend leur construction assez facile.

Questions connexes