C ++ мьютекс в пространстве имен std не называет тип
Я пишу простую программу на C ++, чтобы продемонстрировать использование блокировок. Я используюcodeblocks
а такжеgnu
gcc
компилятор.
#include <iostream>
#include <thread>
#include <mutex>
using namespace std;
int x = 0; // shared variable
void synchronized_procedure()
{
static std::mutex m;
m.lock();
x = x + 1;
if (x < 5)
{
cout<<"hello";
}
m.unlock();
}
int main()
{
synchronized_procedure();
x=x+2;
cout<<"x is"<<x;
}
Я получаю следующую ошибку:mutex in namespace std does not name a type
.
Почему я получаю эту ошибку? Разве компилятор не поддерживает использование блокировок?