多线程中的静态成员变量
Static member variables in multithreading
众所周知,不管实例化了多少个对象,BSS段中只存储了一个静态成员变量的实例。因此,考虑有一些线程用静态成员变量实例化 class 并经常更改静态成员;我的问题是静态成员是否是线程安全的。
变量对线程一无所知。 Class 静态成员变量本身不是线程安全的。您可能会考虑将它们放在线程本地存储中,或者确保成员的数据结构本身是线程安全的。
你还提到了"static member functions",但这些对这个问题来说并不重要:无论你如何修改你的静态成员变量,这样做都不是本质上线程安全的,无论是通过静态成员函数修改,常规成员函数或非成员函数。
众所周知,不管实例化了多少个对象,BSS段中只存储了一个静态成员变量的实例。因此,考虑有一些线程用静态成员变量实例化 class 并经常更改静态成员;我的问题是静态成员是否是线程安全的。
变量对线程一无所知。 Class 静态成员变量本身不是线程安全的。您可能会考虑将它们放在线程本地存储中,或者确保成员的数据结构本身是线程安全的。
你还提到了"static member functions",但这些对这个问题来说并不重要:无论你如何修改你的静态成员变量,这样做都不是本质上线程安全的,无论是通过静态成员函数修改,常规成员函数或非成员函数。