2014-01-22 182 views
0

我刚接触互斥锁的想法,但需要在共享数组的两个进程之间进行锁定控制。在C++ 98互斥锁中锁定变量共享数据互斥锁

唯一的C++教程,我发现对于理解互斥实现节目使用的#include <mutex>,从而未能给错误是有道理的,我至今:/usr/include/c++/4.6/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.有没有办法在这两种简单的读非2011标准要做到这一点C还是C++?

+4

使用['boost.thread'](http://www.boost.org/doc/libs/1_55_0/doc/html/thread.html)? – juanchopanza

+3

直到新标准C11和C++ 11,线程,互斥体以及所有不属于该语言的部分,但被认为是OS的一部分。您可以使用建议的'-std'参数来使用新的语言功能,也可以使用您的平台的OS功能。既然你没有告诉我们这个平台是什么,并且询问工具或库的问题超出了SO的范围,我们可以为你做的事情不多。 –

+0

谢谢你解释说它被认为是“操作系统的一部分”。现在缺乏它更有意义。我看到了boost版本,但我希望有一个std方法不需要额外的链接。 – ConfusedStack

回答

2

在2011年之前,C和C++都没有多线程的概念。所以不行,没有办法执行多重排除 - 或者说有多个线程 - 在C11或C++ 11之前只使用标准语言。