.net - ThreadStatic 与 ThreadLocal<T> 性能 : speedups or alternatives?

标签 .net thread-local threadstatic

我最近阅读 this post about poor performance of fields marked ThreadStatic - 它们显然比正常的现场访问慢 60 倍。 .NET 4 的 ThreadLocal 性能更好吗?

是否有提供高性能线程特定存储的替代方案?

最佳答案

请记住那是在 2008 年 - 我相信 .NET 4 对于 ThreadStatic 来说要快得多.NET 3.5 以外的字段。我不记得了,但如果你愿意,你可以运行测试。

也就是说,我并不真正相信测试描述 - 因为它不切实际。你真的需要在循环中重复读取线程局部字段吗?您是否更有可能阅读一次,然后再阅读另一段代码?

最终,真正的问题是这些方法中的一种或两种是否足以满足您的特定要求。我更喜欢 ThreadLocal<T>ThreadStatic不是出于性能原因,而是因为它允许适当的初始化 - 参见我的 article on randomness举个例子。

关于.net - ThreadStatic 与 ThreadLocal<T> 性能 : speedups or alternatives?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3829130/

相关文章:

c# - 尝试下载单词时出现“无法访问关闭的流”之类的错误

multithreading - 使用 NIO 或 Netty 等事件驱动框架时如何跟踪请求过程

java - 为什么 ThreadLocalMap.Entry 扩展 WeakReference?

asp.net - WCF 请求处理线程敏捷吗?

C# 线程参数在线程执行期间发生变化 - 为什么?

c# - 无法通过 WCF 中的构造函数初始化成员

.net - MSBuild 项目引用 :private ("Copy Local") - what are the allowed values and behaviour?

c# - 在 C# 中重新抛出异常的正确方法是什么?

正常关闭时 Tomcat 内存泄漏警告 - Codahale

c# - AsyncLocal<T> 在非异步/等待代码中有什么作用?