使用 thread_local 变量作为示例获取以下代码:
void func() {
thread_local int a;
......
}
根据Wikipedia,我知道它是 thread_safety 函数。但是我们是否应该将其称为重入功能?
答案 0 :(得分:0)
线程安全!=重新入侵。
可以中断重入函数(比如中断或信号处理程序),然后由该信号处理程序重新输入;这发生在一个线程中。
我们无法判断func()
是否可重入,或仅仅是因为它使用了一个线程局部变量。
简而言之:如果函数以非原子方式访问全局数据(或调用这样做的函数),那么它是不可重入的。这根本不一定涉及线程化。