在Linux下是否有用于C ++的用户模式多线程库/框架?

时间:2009-07-21 13:01:43

标签: c++ linux

我正在寻找Linux下用于C ++的用户模式多线程库/框架。我熟悉boost :: thread和ACE_Thread_Manager,但AFAIK最终都使用OS本机线程的支持。

建议将受到高度赞赏。

5 个答案:

答案 0 :(得分:7)

GNU PTH:http://www.gnu.org/software/pth/

它正在使用协作式多线程,这就是它在GnuPG中使用的原因(出于安全原因,它不需要真正的线程,但出于响应性原因需要线程)。

答案 1 :(得分:2)

MTasker你正在寻找什么样的东西?它也是一个合作的多任务库。您可能还想考虑只是添加一些状态机。

另请查看State ThreadsMIT Pthreads

此工具将有助于生成可用于此目的的分层状态机:CHSM

答案 2 :(得分:1)

您可能需要查看英特尔线程构建模块。 (TBB)

http://www.threadingbuildingblocks.org/

它尝试从程序员那里抽象出很多线程概念,同时让他/她采用更多基于任务的并行方法。

答案 3 :(得分:1)

如果要为io类型操作进行线程化,可以考虑使用select进行多路复用

答案 4 :(得分:1)

前段时间我在这个主题上发表了博客:http://yz.mit.edu/wp/cooperative-threads-for-cc/

当时我比较了领先者State-Threads和GNU Pth,并且基于对文档和代码的不太仔细的检查,我对ST中的系统hackery更有信心而不是Pth,但我不记得具体细节。我对ST有过积极的体验,所以从未真正尝试过Pth。

唯一让我担心ST的是它对(无法)与pthreads互操作的免责声明。我在同一个项目中使用了两个(Pth可能不符合法案的另一个原因是它使用了与pthreads相同的符号名称),我从未遇到任何问题,但我从未对组合进行压力测试。

有兴趣了解您(以及其他人)对这两个特定图书馆的经验。