C ++中的跨平台多线程?

时间:2011-04-07 09:03:06

标签: c++ multithreading cross-platform

基本上,标题解释了一切;我正在寻找用C ++制作游戏,我想使用多线程来处理像物理引擎这样的东西,并在加载屏幕上保持动画流畅。我见过几个多线程库,但我想知道哪个最适合我的应用程序,它可以在Windows Mac和Linux上运行良好。这样的图书馆存在吗?

5 个答案:

答案 0 :(得分:6)

您可能需要boost::thread或英特尔的线程构建块。我推荐TBB,但我认为它不是免费的,所以boost::thread是免费选项。

答案 1 :(得分:3)

如果您可以使用c++0x threads,请使用它。

如果没有,boost :: thread是最好的免费多平台库。

答案 2 :(得分:2)

我最喜欢的是QThreadQt库的一部分。

答案 3 :(得分:1)

目前我的推荐是OpenMP(libgomp on g ++,IBM XlC ++,MSVC ++都支持它)

OpenMP提供了一种利用并行性的简单方法,而不会干扰算法设计; OpenMP程序在并行和串行执行环境中编译和操作。使用OpenMP基于指令的并行性还简化了将现有串行代码转换为高效并行代码的行为。

参见msdnGOMP

起点

随机引用:

  

为了保持相关性,免费软件开发工具必须支持新兴技术。通过实施OpenMP,GOMP提供了一种简化的语法工具,用于创建针对并行体系结构的软件。 OpenMP的平台中立语法与GCC和其他GNU项目的可移植性目标很好地融合在一起

答案 4 :(得分:1)

另一个包含跨平台线程的漂亮库是poco