在 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 锁(对象)的 C++ 模拟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21002388/