我正在尝试通过队列在两个线程之间共享数据。一个线程进入队列,另一个从队列中弹出。我知道在线程之间进行同步是安全的,因此决定使用互斥锁。我看到的每个论坛的代码中都有一个#include“mutex”语句,但是当我使用它时,我得到“致命错误C1083:无法打开包含文件:'mutex':没有这样的文件或目录”。请让我知道这个错误是由什么引起的。
我正在使用 Windows 机器和 Visual Studio 2005 编译器。
我正在尝试通过队列在两个线程之间共享数据。一个线程进入队列,另一个从队列中弹出。我知道在线程之间进行同步是安全的,因此决定使用互斥锁。我看到的每个论坛的代码中都有一个#include“mutex”语句,但是当我使用它时,我得到“致命错误C1083:无法打开包含文件:'mutex':没有这样的文件或目录”。请让我知道这个错误是由什么引起的。
我正在使用 Windows 机器和 Visual Studio 2005 编译器。
我正在使用 Windows 机器和 Visual Studio 2005 编译器。
std::mutex
在 C++11 之前,在<mutex>
header 中声明不可用。只需将您的编译器升级到应该支持它的 VS 2012 (我看到它带有 标记visual-c++
)。
如果升级是不可能的,正如 juanchopanza 所说,你可以使用Boost.Thread,或者,如果你已经在使用CreateThread
其他系统调用,你可以使用CreateMutex
[1]自己创建一个。