原文:https://www.cnblogs.com/zxjan/p/3538911.html
1. 如果是编译时和加载时初始化, 是不会存在线程安全这个issue的;
因为这两种初始化一定发生在Main函数执行之前, 这个时候尚未进入程序运行空间; 而这些初始化一定是在单线程环境下操作的! -- 都是在执行C Runtime的startup代码中的void mainCRTStartup(void)函数时所在的OS系统加载程序时的主线程空间上发生的!
2. 如果是运行时初始化, 因为无法保证访问这个静态变量所在的局部函数/全局函数/类成员函数/类静态成员函数 一定只会从某个特定的线程中被访问, 因此, 就一定会存在"线程安全"的issue!
怎么避免:加锁解锁。
原文地址:https://www.cnblogs.com/westlife-11358/p/10471697.html
时间: 2024-10-11 10:29:36