C / C ++中的基本multithreading – 提示,建议,教程,某些方向?

我想学习如何构建一个multithreading应用程序,但我甚至不知道从哪里开始。

大多数人如何实现multithreading? 他们使用升级库吗? 还有其他方法吗? (使用标准C / C ++)

我理解这个概念,但完全不知道从哪里开始真正学会如何去做。 谁能推荐任何东西?

http://msdn.microsoft.com/en-us/library/7t9ha0zh%28v=VS.80%29.aspx <—这些是标准的C ++,还是一些仅限Microsoft的实现?

我是否认为multithreading库包含在Windows API中? 我在MSDN上找到了一个例子( http://msdn.microsoft.com/en-us/library/esszf9hw%28v=VS.80%29.aspx ),它使用的函数(ReleaseMutex等)似乎在windows中。H。 这是大多数人在进行Windows编程时使用的吗?

Boost库是一种使用线程的跨平台方式。

大多数人使用winapi或pthreads 。 pthreads最初用于POSIX系统,但它有一个用于mingw的端口,允许它在Windows上使用。

如果您绝对需要跨平台解决方案,或者已经连接了boost库,我建议使用boost。 如果您正在为Windows或POSIX进行开发,请相应地使用winapi或pthreads。

如果您希望通过multithreading在应用程序中寻求简单的性能提升OpenMP是一个简单的库,它允许您的程序跨多个内核进行扩展,只需要在代码中放置#pragma以并行化代码块或循环块,弱特定性能的其他选项。

这不容易实现应用程序中的GUI /处理/ IO划分等粗略并行性,但允许在繁重的数字运算中对多核机器进行轻松可见的multithreading性能提升。

如果你以前从未处理过multithreading,我建议你自己通过codeproject这样的教程来开始工作。