我有一个我目前正在用 C 编写的应用程序,其中我在作为项目一部分的库中声明了几个 TLS 静态全局变量。
TLS 变量是使用 gcc 的 __thread 指令声明的。
我想知道我是否可以使用 .ctor && .dtor 部分在共享或静态 C 库中基于每个线程初始化 TLS 数据,以及使用此方法的线程安全性如何。
.ctor && .dtor 部分是按线程执行还是仅存在于父进程中?
最后一点,库静态或动态编译为应用程序代码,这是否意味着共享/静态库中贴花的 .ctor && .dotr 部分将成为最终可执行文件的一部分?
我真的对线程部分感到困惑,主要是......有谁有想法吗?