chuer
V2EX  ›  C

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

  •  
  •   chuer · Jan 6, 2019 · 2551 views
    This topic created in 2687 days ago, the information mentioned may be changed or developed.

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

    2 replies    2019-01-07 09:18:27 +08:00
    Mirana
        1
    Mirana  
       Jan 6, 2019
    __thread int var;

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

    在一些场景下,比如每个线程都能自己执行,不依赖其他线程的状态的情况下,把一些频繁用到的变量改成 tls 的可以增加程序的并发度
    owenliang
        2
    owenliang  
       Jan 7, 2019 via Android
    就是线程各自数据独立,写程序的时候只需要加个关键字,不需要自己再去写代码给每个线程 new 独立的内存了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1024 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 114ms · UTC 18:34 · PVG 02:34 · LAX 11:34 · JFK 14:34
    ♥ Do have faith in what you're doing.