C / C ++中的基本多线程 - 提示,建议,教程,某些方向?

时间:2010-08-04 05:44:45

标签: c++ c multithreading

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

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

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

这不容易实现应用程序中的GUI /处理/ IO划分等粗略并行性,但允许在数量大的数字处理中轻松实现多核机器上的多线程性能提升。

答案 2 :(得分:0)

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