class A {
public:
static T get() { return b->get();}
private:
static B* b;
}
A::get和B类不涉及静态变量和堆区变量,多线程同时调用A::get()是否安全合理?
没问题的,get是个函数而不是变量,不存在线程安全问题
每个调用都是单独的内存在执行
当然前提是get里不要使用静态变量,否则还是有可能冲突
其实如果你只读取不写入的话,哪怕是静态变量,多少线程一起读都没问题,涉及到静态变量的改值才会有问题
这个相当于时可重入的问题 你可以搜一下,可重入和线程安全