clang++是否对局部静态变量进行线程安全初始化?
Does clang++ do threadsafe initialisation of local static variables?
clang++是否对局部静态变量进行线程安全初始化?
GCC可以,除非您使用具有误导性的名称-fno-threadsafe-statics
关闭它。我使用的是Apple clang 2.0版本(tags/Apple/clang-139)(基于LLVM 2.9svn)。
是,与GCC相同(因此也可以在-fno-threadsafe-statics
中关闭)
是的,尽管Apple的libcppabi以一种次优的方式实现了这一点:如果许多线程使用许多本地静态量,则使用全局互斥锁会损害性能。
源代码:http://www.opensource.apple.com/source/libcppabi/libcppabi-26/src/cxa_guard.cxx
错误报告:https://bugreports.qt.io/browse/QTBUG-33967(这导致Qt在使用libcppabi时以不同的方式实现此功能)。
我希望让更多的人意识到这一点,终有一天苹果会修复他们的代码…
相关文章:
- 如何将元素添加到数组的线程安全函数?
- C++中的线程安全删除
- 在std::thread中,joinable()然后join()线程安全吗
- 在c++队列中使用pop和visit实现线程安全
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- 全局变量 多读取器 一个写入器多线程安全?
- 共享队列的线程安全
- boost::文件系统::recursive_directory_iterator多线程安全
- 以线程安全的方式转换 C/C++ 中时区名称字符串的时区偏移量
- 线程安全运算符<<
- 如何使缓存线程安全
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 提升精神 V2 Qi 语法线程安全吗?
- asio 链对象线程安全吗?
- 线程安全队列 c++
- 提供对不同类型的数据(建议、代码审查)的线程安全访问的类
- 如何以线程安全的方式更改目录?
- 线程安全的引用计数队列C++
- 析构函数和线程安全
- 适用于大型数组的无复制线程安全环形缓冲区