V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chuer
V2EX  ›  C

Envoy 里面的线程本地储存是一个什么样的机制?

  •  
  •   chuer · 2019-01-06 00:16:00 +08:00 · 2104 次点击
    这是一个创建于 2166 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在看 Envoy 的源代码,一些相关的博客有提到 Envoy 里面用了一个线程本地储存( TLS )的机制,这个之前也没接触过,看网上一些资料也还是没搞懂,所以想问下各位 dalao 这个机制主要是用来解决一些什么问题的?

    2 条回复    2019-01-07 09:18:27 +08:00
    Mirana
        1
    Mirana  
       2019-01-06 22:44:41 +08:00
    __thread int var;

    这种类型的变量,在每个线程里是独立的,互不影响

    在一些场景下,比如每个线程都能自己执行,不依赖其他线程的状态的情况下,把一些频繁用到的变量改成 tls 的可以增加程序的并发度
    owenliang
        2
    owenliang  
       2019-01-07 09:18:27 +08:00 via Android
    就是线程各自数据独立,写程序的时候只需要加个关键字,不需要自己再去写代码给每个线程 new 独立的内存了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2859 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:41 · PVG 20:41 · LAX 04:41 · JFK 07:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.