原文:https://www.cnblogs.com/zxjan/p/3538911.html
1. 如果是編譯時和加載時初始化, 是不會存在線程安全這個issue的;
因為這兩種初始化一定發生在Main函數執行之前, 這個時候尚未進入程序運行空間; 而這些初始化一定是在單線程環境下操作的! -- 都是在執行C Runtime的startup代碼中的void mainCRTStartup(void)函數時所在的OS系統加載程序時的主線程空間上發生的!
2. 如果是運行時初始化, 因為無法保證訪問這個靜態變量所在的局部函數/全局函數/類成員函數/類靜態成員函數 一定只會從某個特定的線程中被訪問, 因此, 就一定會存在"線程安全"的issue!
怎么避免:加鎖解鎖。