C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了命名空间std中的C mutex不指定类型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我做一个简单的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;
}

得到以下错误:命名空间std中的mutex不指定类型.为什么我得到这个错误?编译器不支持使用锁吗?

解决方法

我碰巧也在看同样的问题.在Linux下,GCC可以正常使用std :: mutex.但是Windows上的事情似乎更糟.在< mutex> MinGW GCC 4.7.2附带的头文件(我相信你也在使用MinGW GCC版本),我发现互斥类在下面的#if保护下定义:
#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)

遗憾的是,在Windows上没有定义_GLIBCXX_HAS_GTHREADS.运行时支持根本不在.

您可能还想直接在MinGW邮件列表中提出问题,以防一些GCC专家可能会帮助您.

编辑:MinGW-w64项目提供必要的运行时支持.查看http://mingw-w64.sourceforge.net/

大佬总结

以上是大佬教程为你收集整理的命名空间std中的C mutex不指定类型全部内容,希望文章能够帮你解决命名空间std中的C mutex不指定类型所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: