C++中static变量的初始化
C++中static变量的初始化
之前一直停留在c++中,停留的认知:
1. c++类中,只初始化一次。
2. cpp文件中,只在当前文件有效。
经过上面链接的文章,彻底的解决了static的认识。
1. 编译时初始化2. 加载时初始化3. 运行时初始化4. static初始化的原理总结
特别是这个总结,特有感触:
总结
(1)如果是编译时和加载时初始化,是不会存在线程安全这个问题的。因为这两种初始化一定发生在Main函数执行之前,这个时候尚未进入程序运行空间,而这些初始化一定是在单线程环境下操作的。 (2)如果是运行时初始化,因为无法保证访问这个静态变量一定只会从某个特定的线程中被访问,因此会存在"线程安全"的问题。
参考: C++中static变量的初始化
共有 0 条评论