标签: c++ multithreading static
为每个类赋予唯一ID的常见解决方案是使用静态成员,如下所示:
class Example { static unsigned int nextID; int id; public: Example(); }; int Example::nextID = 0; Example::Example () { id = nextID++; }
我是否正确地认为这在多线程环境中并不安全? 什么是正确的解决方案?您是否应该在构造函数中的nextID上简单地使用锁防护?