开发者

Cross platform multithreading in C++?

开发者 https://www.devze.com 2023-02-23 05:30 出处:网络
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 loadi开发者_StackOve

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 loadi开发者_StackOverflow社区ng 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?


You probably want boost::thread or Intels' Thread Building Blocks. I'd recommend TBB but it's not free, I think, so boost::thread for the free option.


If you can use c++0x threads, then use that.

If not, boost::thread is the best free multi-platform library.


My favourite is QThread. Part of Qt library.


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:

To remain relevant, free software development tools must support emerging technologies. By implementing OpenMP, GOMP provides a simplified syntax tools for creating software targeted at parallel architectures. OpenMP's platform-neutral syntax meshes well with the portability goals of GCC and other GNU projects


Another nice library that includes cross platform threads is poco

0

精彩评论

暂无评论...
验证码 换一张
取 消