作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力解决 C++ Crash Course我遇到了以下代码 list :
#include <cstdio>
struct Tracer {
Tracer(const char* name)
: name{ name } {
printf("%s constructed.\n", name);
}
~Tracer() {
printf("%s destructed.\n", name);
}
private:
const char* const name;
};
static Tracer t1{ "Static variable" };
thread_local Tracer t2{ "Thread-local variable" };
int main() {
printf("A\n");
Tracer t3{ "Automatic variable" };
printf("B\n");
const auto* t4 = new Tracer{ "Dynamic variable" };
printf("C\n");
}
Static variable constructed.
Thread-local variable constructed.
A
Automatic variable constructed.
B
Dynamic variable constructed.
C
Automatic variable destructed.
Thread-local variable destructed.
Static variable destructed.
Static variable constructed.
A
Automatic variable constructed.
B
Dynamic variable constructed.
C
Automatic variable destructed.
Static variable destructed.
t2
会发生什么情况多变的?
最佳答案
A thread_local
变量可以在线程启动时初始化,但也可以仅在使用时初始化(标准要求在第一次使用之前初始化)。保证也是,如果初始化,它将在线程终止时被销毁。
关于c++ - 为什么 thread_local 变量从未在这里初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60141479/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!