是包含线程局部变量重入的函数
Is the function who contains thread-local variable re-entrant?
>以下代码以thread_local
变量为例:void func() {
thread_local int a;
......
}
根据维基百科,我知道这是一个thread_safety功能。但是我们是否也应该称它为重入函数?
线程安全 != 重入。
重入函数可以被中断(例如,通过中断或信号处理程序(,然后由该信号处理程序重新输入;这发生在一个线程中。
我们无法仅从它使用一个线程局部变量的事实来判断func()
是否可重入。
长话短说:如果一个函数以非原子方式访问全局数据(或调用这样做的函数(,那么它是不可重入的。这不一定涉及线程。
相关文章:
- 局部变量保留函数中的值
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 如何在函数外部访问函数中局部变量的值?
- 赋予全局变量而不是局部变量优先级的函数 - (异常行为)
- 获取具有静态局部变量的绑定/推断捕获 lambda 的函数指针
- 函数局部静态变量:从性能角度来看的优点/缺点
- 是否可以影响 C++ 中回调函数的局部变量?
- 将共享指针传递给函数参数 - 将其分配给局部变量的正确方法是什么
- 调用一个小函数两次(例如在if条件和主体中)比将结果存储在局部变量中更可取
- C++ - 指向函数中局部变量的指针
- 如何在 C++ 的 lambda 函数中传递同名的局部变量和参数(使用此关键字)?
- Clang++ 6.0 内存清理器未报告返回值指示条件分支的函数中的未初始化局部变量
- 如何将局部变量传递给 lambda 函数
- 局部变量的作用域是块或函数
- 函数原型未初始化的局部变量
- 尝试声明函数的局部变量,但得到范围错误
- 为什么堆栈中的函数局部变量之间存在内存空间
- 返回函数局部变量作为引用
- 函数局部变量在函数调用之间保持不变
- 对静态函数局部变量的引用