代码之家  ›  专栏  ›  技术社区  ›  SpeakX

嵌套的thread_local变量

  •  0
  • SpeakX  · 技术社区  · 2 年前

    申报时 static thread_local 变量,则每个线程都有该变量的副本。想象一下,一个线程然后旋转另一个线程,这个变量仍然是嵌套线程中的副本吗?

    1 回复  |  直到 2 年前
        1
  •  2
  •   user17732522    2 年前

    A. thread_local 变量在每个线程中都有一个实例。线程是如何创建的并不重要。

    每个实例 thread_local 变量根据其初始化声明进行初始化。不会从一个实例复制到另一个实例。

    这个 static 关键字的含义与 thread_local 在块范围和类范围内,它总是多余的 thread_local 在命名空间范围内,它给出了变量的内部链接,这意味着每个翻译单元( .cpp 文件)也将有自己的变量实例,此外每个线程还有一个实例。

    推荐文章