便携式C++多线程

Asl*_*986 3 c++ multithreading portability

我正在用C++语言编写一个使用多线程的库.由于我正在开发它在Windows中,我使用的方法和"WINDOWS.H"(如数据结构CreateThread,HANDLE WINAPI等等).

现在我想在Windows和Linux中使这个代码可执行; 你能告诉我一些线程实现吗?

这个应用程序的主要要求是执行速度,所以我需要一些快速的实现.

预先感谢.

111*_*111 11

到目前为止,您最好的选择是使用新的std :: threads库,这是可移植的,标准化的并且以现代风格编写.

 std::thread my_thread(my_func, my_param);
Run Code Online (Sandbox Code Playgroud)

http://en.cppreference.com/w/cpp/thread

如果您无法访问C++ 11(VC10和> gcc 4.4应该没问题),那么std :: threads或多或少是一个伟大的boost :: threads的开发,boost库是跨平台的便携式(至少它将支持主要的操作系统包括Win32和Linux).

http://www.boost.org/doc/libs/1_49_0/doc/html/thread.html

最后,如果您正在寻找并行算法,那么在检查intel的TBB时可能是值得的,这是一个现代C++线程库,提供类似于std :: algorithms的并行结构

tbb::for_each(my_contaier.begin(), my_container.end(), my_func);
Run Code Online (Sandbox Code Playgroud)

http://threadingbuildingblocks.org/