Domanda

Ho creato un modello per l'esecuzione di attività di lavoro in un'applicazione server utilizzando un pool di thread associato a una porta di completamento IO come mostrato nei post seguenti:

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

Ci sono classi in boost che possono aiutare con questo modello di programmazione?

È stato utile?

Soluzione

Non proprio, almeno, non l'ultima volta che ho guardato.Voglio dire, boost::thread_group potrebbe rendere le cose leggermente più ordinate in alcuni punti, ma non così da fare molta differenza, non credo.

Il supporto del thread di Boost sembra marginalmente utile quando si scrive qualcosa che è multipiattaforma, ma dato che ciò che stai scrivendo sarà comunque specifico per Win32 (a causa dell'uso di IOCP) non sembra esserci molto vantaggio da ciò .

Altri suggerimenti

Potresti voler dare un'occhiata a progetto threadpool, che sembra una bella implementazione del pool di thread oltre a boost.Non l'ho provato personalmente, ma sembra abbastanza carino.

Non ho visto nulla nel boost che aiuti con la struttura con cui tendi a ritrovarti quando usi le porte di completamento IO, ma poi non l'ho guardato di recente...Tuttavia, leggermente fuori tema, potresti dare un'occhiata al pool di thread basato su IOCP che fa parte del mio framework di server IOCP gratuito.Potrebbe darti qualche idea se non altro.Puoi trovare il codice Qui.Il pool di thread supporta l'espansione e la contrazione in base alla domanda ed è utilizzato nei sistemi di produzione da oltre 6 anni.

ASSO ha alcuni reattori che puoi utilizzare per modellare le cose attorno ai tuoi IOCP.Alcuni di questi avrebbero potuto essere aggiunti per potenziare, ma il potenziamento rende la loro costruzione piuttosto semplice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top