“win32多线程编程”与“C++11多线程编程”的区别 我是C++编程新手。我有一个愚蠢的问题

“win32多线程编程”与“C++11多线程编程”的区别 我是C++编程新手。我有一个愚蠢的问题,c++,multithreading,C++,Multithreading,如果我想编程多线程,我什么时候使用C++11的多线程编程,什么时候使用win32的多线程编程 在win32中使用man CreateThread,在c++11中使用man std::thread,如果在windows下编程,则可以同时使用两者。如果你想让你的程序在其他平台上可以移植,那么你最好坚持使用c++11 作为一个一般规则,我建议你去学习C++ 11,因为它是一个与C++语言更为一致的集合。Win32线程API是一种C样式的函数集,而不是C++库。 另一方面,使用win32编程可能有正当的

如果我想编程多线程,我什么时候使用C++11的多线程编程,什么时候使用win32的多线程编程


在win32中使用man CreateThread,在c++11中使用man std::thread,如果在windows下编程,则可以同时使用两者。如果你想让你的程序在其他平台上可以移植,那么你最好坚持使用c++11

作为一个一般规则,我建议你去学习C++ 11,因为它是一个与C++语言更为一致的集合。Win32线程API是一种C样式的函数集,而不是C++库。
另一方面,使用win32编程可能有正当的理由,但这被隐藏在平台特定的方面,您现在可能不需要这些方面。

在C++11之前,在标准库中无法创建线程。CreateThread是一个Windows API函数,因此只能在Windows上工作


如果您的编译器支持C++11,特别是C++11线程,那么通常最好使用std::thread,因为它可以与任何支持C++11线程的编译器/操作系统一起工作。值得注意的是,C++11线程基本上来自Boost线程,因此如果您遇到不支持它们的情况,您可能可以下载Boost库并将所有std::thread调用更改为Boost::thread,它应该仍然可以工作。

选择一个-两个执行相同操作的实现,我建议使用std::Thread的不同方法谢谢您的回复。你能给我一个平台特定方面的例子吗?