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/