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

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

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

    最近在看 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 独立的内存了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1062 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 17:55 · PVG 01:55 · LAX 09:55 · JFK 12:55
    ♥ Do have faith in what you're doing.