面向任务的线程池
时间:2020-03-05 18:45:43 来源:igfitidea点击:
我已经创建了一个模型,用于使用与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
boost中是否有任何类可以帮助该编程模型?
解决方案
回答
至少在上次看时,不是真的,至少不是。我的意思是,boost :: thread_group可能会使某些地方的内容略显整洁,但我认为这不会带来很大的不同。
在编写跨平台的内容时,Boost的线程支持似乎微不足道,但是考虑到我们要编写的内容还是Win32特定的(由于使用了IOCP),因此似乎并没有太大的好处。
回答
我们可能需要检出线程池项目,该项目看起来像是在Boost上的一个不错的线程池实现。我自己还没有尝试过,但是看起来还不错。
回答
在使用IO完成端口时,我还没有看到任何可以增强我们最终使用的结构的增强功能,但是最近我似乎还没有看到任何东西。但是,有点偏离主题了,我们可能想采用看一下基于IOCP的线程池,它是我的免费IOCP服务器框架的一部分。如果没有别的,它可能会给我们一些想法。我们可以在此处找到代码。线程池支持根据需求进行扩展和收缩,并且已经在生产系统中使用了6年以上。
回答
ACE有一些反应堆,可用于对IOCP周围的事物进行建模。其中一些可能已添加到boost中,但是boost使它们的构建非常容易。