多线程处理中的静态成员变量
Static member variables in multithreading
众所周知,尽管实例化了多少对象,BSS 段中只存储了一个静态成员变量实例。因此,考虑使用静态成员变量实例化类并频繁更改静态成员的线程;我的问题是静态成员是否是线程安全的。
变量对线程一无所知。 类静态成员变量本质上不是线程安全的。 您可以考虑将它们放在线程本地存储中,或者确保成员的数据结构本身是线程安全的。
您还提到了"静态成员函数",但这些对这个问题无关紧要:如何修改静态成员变量并不重要,这样做本质上不是线程安全的,无论是通过静态成员函数、常规成员函数还是非成员函数进行修改。
相关文章:
- C++:是否可以使用非静态成员变量模板?
- 如何在复杂继承中访问静态成员变量
- 静态成员变量不会由 gettext 转换
- 未使用的C++未优化的静态成员函数/变量
- 为什么我不能像这样在静态成员函数中调用静态成员变量?
- C++ lambda - 捕获静态成员变量
- 多线程处理中的静态成员变量
- 纯标头库中静态成员变量的正确设置器和 getter
- 如何从具有专用化的类模板定义静态成员变量?
- 从静态成员函数访问私有非静态类变量 - C++
- 静态变量与静态成员
- 为什么可以在没有实例变量的情况下访问静态回调方法中的静态成员变量?
- 声明和定义类静态成员变量不会导致多重声明,这是为什么?
- 为什么不允许静态成员变量的初始化在类中,而允许静态静态成员的初始化
- 类中的静态成员变量和C++中的全局变量有什么区别?
- 获取 constexpr 全局变量(不是静态成员)的链接器符号
- C++ 静态成员变量 - 文件之间的访问
- 将非静态成员函数C 的使用无效,而将成员功能作为函数变量
- 如何在运行时使用静态成员函数初始化静态成员变量
- 如何在类静态成员中引用静态变量?