2014-01-22 218 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之前只使用標準語言。