C++中的多线程...从哪里开始?

Cam*_*Cam 14 c++ multithreading portability

我想开始用C++学习多线程.我也在Java中学习它.在Java中,如果我编写一个使用多线程的程序,它将在任何地方工作.但是在C++中,多线程不依赖于特定于平台的API吗?如果是这样,那似乎会妨碍可移植性.

如何在不导致可移植性问题的情况下在C++中进行多线程处理?boost的线程库是一个很好的解决方案吗?

作为旁注 - 如何将多线程实现为库?这不是必须由编译器完成的事情吗?

jde*_*aan 15

如果您还没有支持C++ 0x的编译器(例如,可用Visual Studio c ++ 2010),请使用boost线程.(除非你使用已经支持线程的框架,但事实并非如此 - 否则你不会问这个问题 - ).这些提升线程实际上成为全新C++的标准.在此之前,C++本身就是线程不知道的.

如果您想要学习并行编程的其他方面,TBB线程构建模块也可能对您有意义.

关于Qt:如果你只想要线程支持它是完全矫枉过正的.从编译到结果,它的往返时间非常慢.这是真正精心设计的思想.但不是像boost这样的C++ 0x线程的官方标准.因此,我不会把它作为第一选择.