是包含线程局部变量重入的函数

Is the function who contains thread-local variable re-entrant?

本文关键字:函数 局部变量 包含 线程      更新时间:2023-10-16

>以下代码以thread_local

变量为例:
void func() {
    thread_local int a;
    ......
}

根据维基百科,我知道这是一个thread_safety功能。但是我们是否也应该称它为重入函数?

线程安全 != 重入。

入函数可以被中断(例如,通过中断或信号处理程序(,然后由该信号处理程序重新输入;这发生在一个线程中。

我们无法仅从它使用一个线程局部变量的事实来判断func()是否可重入。

长话短说:如果一个函数以非原子方式访问全局数据(或调用这样做的函数(,那么它是不可重入的。这不一定涉及线程。