在C#/Java中,我可以很容易地使任何线程不安全的代码都是线程安全的。我只是介绍了特殊的"lockObj“,并这样使用它:
private object lockObj = new object();
void ThreadSafeMethod()
{
lock (lockObj)
{
// work with thread-unsafe code
}
}(有些人只使用lock (this),但这是不归队)
什么是最简单和最快的C++当量?我可以用C++11。
发布于 2014-01-08 17:29:40
如果可以使用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
}发布于 2014-01-08 17:28:47
Mutex可能是最近的本机C++等效物。对于包含使用外部库的最接近的等价物,您需要一个Monitor。
但是,std::锁可能是最直线的(提供的代码示例使用性病::互斥)。
发布于 2014-01-08 17:30:51
如果您有一个std::锁编译器或操作系统提供的标准原语,例如: Windows上的WaitForSingleObject或Unix/Linux上的pthread_mutex_lock,您可以使用C++。
https://stackoverflow.com/questions/21002388
复制相似问题