在C++中,我是否必須擔心靜態初始化期間在對象上運行的多個線程,還是保證由單個線程執行?C++,是由多個線程執行的靜態初始化?
1
A
回答
2
對於全球範圍的static
變量,是的。
對於本地static
s(在函數內部聲明),此保證僅適用於C++ 11和之後。
+0
嗨Luchian,你的意思是說:「是的,我確實需要擔心多個線程」或者「是的,在C++ 11之後和之後,是由單個線程執行的」。 – Nick
+0
@Nick保證線程安全。 –
0
一個小小的警告:做任何你的全局範圍靜態對象從它們的構造函數產生線程?如果是這樣,這些線程將在靜態初始化時間內運行。
相關問題
- 1. 初始化靜態塊中的線程?
- 2. 全局靜態初始化線程
- 3. 在多線程C#程序中執行一次初始化
- 4. 靜態初始化C++
- 5. C++是靜態變量初始化= atomic?
- 6. C++中的靜態初始化和線程安全
- 7. Objective C中的靜態初始化C
- 8. 靜態初始化
- 9. 鏗鏘聲++執行本地靜態變量的線程安全初始化嗎?
- 10. C++靜態變量初始化和線程
- 11. C++類的靜態成員初始化
- 12. 靜態HashMap的初始化
- 13. Spring的靜態初始化
- 14. asm中的靜態初始化程序
- 15. 靜態初始化程序中的Task.Run
- 16. Kotlin的靜態初始化程序塊
- 17. 執行在多線程靜態方法
- 18. 靜態初始化C++,未設置值
- 19. 在C++中初始化靜態成員
- 20. 初始化靜態指針數組C++
- 21. 靜態成員變量初始化C++
- 22. C++靜態初始化順序
- 23. 靜態對象初始化C++
- 24. C++靜態初始化命令失敗
- 25. C++類靜態成員初始化
- 26. C++ Eigen初始化靜態矩陣
- 27. C++靜態初始化:摺疊結構
- 28. C++靜態初始化VS __attribute __((構造))
- 29. C++靜態成員初始化
- 30. C++靜態數據成員初始化
通常靜態初始化是在應用程序啓動時完成的,所以此時只有一個線程 –
據我所知,C++ 11只保證只有一個線程完成。我敢打賭,有人可以在答案中引用標準。澄清你是指一個靜態變量在一個函數體中還是一個靜態的全局或類成員,這些規則是不同的 – odinthenerd
你的對象的初始化會發生什麼,使你對多線程保持謹慎? –