gpt4 book ai didi

c++ - c++中类的静态成员变量是否需要静态锁

转载 作者:行者123 更新时间:2023-11-28 03:14:31 25 4
gpt4 key购买 nike

我有一个静态映射作为我类的成员变量。当我们必须访问这个 map 时,我们是否需要有静态锁?

最佳答案

如果您的 std::map 实例被声明为静态类,那么您的锁也需要是静态类。

考虑当锁是非静态成员但映射是非静态成员时,两个线程使用映射处理不同的对象。

  • 对象 1 锁定本地锁并开始操作共享映射。
  • 对象 2 锁定其本地锁(记住,这是一个单独的锁)并开始操作共享映射。
  • 繁荣/崩溃/燃烧

如果锁是class static,两个对象会共享锁,上面的场景会很好用,一次只能有一个线程锁。

当然还有其他不使用 static 共享锁的方法,但这似乎不是您要的。

关于c++ - c++中类的静态成员变量是否需要静态锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com