在 C#/Java 中,我可以轻松地使任何线程不安全的代码成为线程安全的。我只是介绍特殊的“lockObj”并像这样使用它:
private object lockObj = new object();
void ThreadSafeMethod()
{
lock (lockObj)
{
// work with thread-unsafe code
}
}
(有些人只是使用 lock (this)
但这是 not recomended )
什么是最简单和最快的 C++ 等价物?我可以使用 C++11。
最佳答案
如果可以使用 C++11,则使用 std::mutex(如果不能使用 C++11,则使用 boost::mutex)
private:
std::mutex m;
void ThreadSafeMethod()
{
std::lock_guard<std::mutex> lock(m);
// work with thread-unsafe code
}
关于C#/Java lock(object) 的 c++ 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21002388/