面向任务的线程池

时间:2008-08-31 20:13:53

标签: c++ multithreading boost

我创建了一个模型,用于使用与IO完成端口关联的线程池在服务器应用程序中执行工作任务,如下面的帖子所示:

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

是否有任何类可以帮助这个编程模型?

4 个答案:

答案 0 :(得分:1)

不是,至少,不是我最后一次看。我的意思是,boost :: thread_group可能会使某些地方的东西略微整洁,但不会产生太大的影响,我不这么认为。

在编写跨平台的东西时,Boost的线程支持似乎有点用处,但考虑到你所写的东西将是Win32特定的(由于使用了IOCP),似乎并没有太多从中受益。

答案 1 :(得分:1)

您可能想要查看threadpool project,它看起来像是一个很好的线程池实现在boost之上。我自己没试过,但看起来还不错。

答案 2 :(得分:1)

我没有在boost中看到任何有助于你在使用IO完成端口时最终会遇到的结构的东西,但是我最近没有看过...但是,稍微偏离主题,你可能会想看一下基于IOCP的线程池,它是我的免费IOCP服务器框架的一部分。如果没有别的,它可能会给你一些想法。您可以找到代码here。线程池支持基于需求的扩展和收缩,并已在生产系统中使用超过6年。

答案 3 :(得分:0)

ACE有一些反应器可用于对IOCP周围的事物进行建模。其中一些可能已被添加到提升,但提升使得构建它们非常容易。