在 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/

10-12 06:05