mutex变量加锁为什么有的编译器会创建线程有的不会?

图片说明有人遇见过vs2013编译的 mutex加锁会创建一个线程,但是vs2015以上版本编译的程序mutex变量加锁的时候就不会创建线程吗?

mutex加锁不会创建线程,它是用来lock当前线程的。编译器不应该会有这个行为。你还是要多分析你自己的代码,看是哪里有创建线程等

请使用同样的打开,在不同的IDE先测试看看。。。

互斥体(mutual exclusion 的缩写)是异步执行的线程或进程间通信的方式。此通信通常用于协调多个线程或进程的活动,通常通过锁定和取消锁定资源控制对共享资源的访问。为解决此 x,y 坐标的更新问题,更新线程将设置 mutex,在执行更新之前指示数据结构正在使用。更新线程将在两个坐标全部处理完之后清除互斥体。显示线程在更新显示之前必须等待清除互斥体。由于进程被阻止且直到清除 mutex 后才能继续,因此等待 mutex 的进程通常称为在 mutex 上“阻止”。