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

2019-01-06 00:16:00 +08:00
 chuer

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

2019 次点击
所在节点    C
2 条回复
Mirana
2019-01-06 22:44:41 +08:00
__thread int var;

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

在一些场景下,比如每个线程都能自己执行,不依赖其他线程的状态的情况下,把一些频繁用到的变量改成 tls 的可以增加程序的并发度
owenliang
2019-01-07 09:18:27 +08:00
就是线程各自数据独立,写程序的时候只需要加个关键字,不需要自己再去写代码给每个线程 new 独立的内存了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/524276

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX