gpt4 book ai didi

multithreading - 什么是线程本地存储?为什么我们需要它?

转载 作者:行者123 更新时间:2023-12-04 04:28:28 25 4
gpt4 key购买 nike

我正在阅读操作系统概念中的线程,我遇到了“线程本地存储(TLS)”。我的理解是TLS类似于静态或全局数据,但它对于单个线程来说更独特。它对这里的独特之处有点困惑?

为什么我们不能通过 runner(即线程的实际代码)函数将数据作为参数传递给这个函数?

最佳答案

静态和全局数据在所有线程之间共享。如果你修改了一个全局/静态变量,它对所有线程都是可见的。如果您在 TLS 中创建变量,则与全局/共享变量不同,每个线程都有自己的变量副本,即对变量的更改是线程本地的。与通过 ds 段进行访问的全局变量不同,TLS 变量是使用 (gs/fs) 段访问的。了解它的一个好方法是查看编译器生成的反汇编。

关于multithreading - 什么是线程本地存储?为什么我们需要它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35692188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com