c++中的跨平台多线程

Cross platform multithreading in C++?

本文关键字:多线程 跨平台 c++      更新时间:2023-10-16

基本上,标题说明了一切;我想用c++制作一款游戏,我想在物理引擎等方面使用多线程,并在加载屏幕上保持动画流畅。我见过几个多线程库,但我想知道哪个最适合我的应用程序,它在Windows Mac和Linux上都能很好地工作。这样的图书馆存在吗?

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

如果可以使用c++0x线程,那么就使用它。

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

我最喜欢QThread。Qt库的一部分。

目前我推荐使用OpenMP (libgomp on g++, IBM XlC++, msvc++都支持)

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

查看msdn和GOMP

为起始点

随机引用:

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

另一个包含跨平台线程的很好的库是poco