C++ 中的跨平台多线程?
基本上,标题已经说明了一切;我想用 C++ 制作一个游戏,我想使用多线程来处理物理引擎等内容,并保持加载屏幕上的动画流畅。我见过一些多线程库,但我想知道哪个最适合我的应用程序,它可以在 Windows Mac 和 Linux 上运行良好。这样的图书馆存在吗?
Basically, the title explains it all; I'm looking to make a game in C++ and I want to use multithreading for stuff like the physics engine and keeping the animation smooth on the loading screen. I've seen a few multithreading libraries, but I'm wondering which is best for my application, which will work well on Windows Mac and Linux. Does such a library exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可能需要
boost::thread
或英特尔的线程构建模块。我推荐 TBB,但我认为它不是免费的,所以boost::thread
作为免费选项。You probably want
boost::thread
or Intels' Thread Building Blocks. I'd recommend TBB but it's not free, I think, soboost::thread
for the free option.如果您可以使用 c++0x 线程 ,然后使用它。
如果没有,boost::thread 是最好的免费多平台库。
If you can use c++0x threads, then use that.
If not, boost::thread is the best free multi-platform library.
我最喜欢的是 QThread。 Qt 库的一部分。
My favourite is QThread. Part of Qt library.
目前我的推荐是 OpenMP(g++ 上的 libgomp、IBM XlC++、MSVC++ 都支持它)
OpenMP 提供了一种利用并行性而不干扰算法设计的简单方法; OpenMP 程序可以在并行和串行执行环境中正确编译和运行。使用 OpenMP 基于指令的并行性还可以简化将现有串行代码转换为高效并行代码的操作。
请参阅 msdn
和 GOMP
作为起点
随机引用:
Currently my recommendation would be OpenMP (libgomp on g++, IBM XlC++, MSVC++ all support it)
OpenMP offers a simple way of exploiting parallelism without interfering with algorithm design; an OpenMP program compiles and operates correctly in both parallel and serial execution environments. Using OpenMP's directive-based parallelism also simplifies the act of converting existing serial code to efficient parallel code.
See msdn
And GOMP
for starting points
Random quote:
另一个包含跨平台线程的不错的库是 poco
Another nice library that includes cross platform threads is poco