c++中的跨平台多线程
Cross platform multithreading in C++?
基本上,标题说明了一切;我想用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
相关文章:
- 在C++中使用cURL和多线程
- 多线程双缓冲区
- 为什么我的多线程作业队列崩溃
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 为什么一个向量上的多线程操作很慢
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 全局变量 多读取器 一个写入器多线程安全?
- boost::文件系统::recursive_directory_iterator多线程安全
- 如何阻止TensorFlow的多线程
- 如何在多线程中正确使用unique_ptr进行多态性?
- 并发/多线程:是否可以以这种方式生成相同的输出?
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 静态 constexpr 类成员变量对多线程读取是否安全?
- 多线程比没有线程C++慢
- 具有 C++11 多线程的特征库
- 如何在跨平台下通过Qt中的多线程写入同一文件的不同区域
- 跨平台多处理和多线程库
- c++中的跨平台多线程