.Net:逻辑线程和线程本地存储?

标签 .net multithreading

我正在阅读有关 CallContext 类 ( http://msdn.microsoft.com/en-us/library/system.runtime.remoting.messaging.callcontext.aspx ) 的内容。该文档介绍了有关“逻辑线程”和“线程本地存储”的内容。

什么是逻辑线程,我不知道线程有多种?

什么是线程本地存储,它是一个类还是某种原理?

我在 MSDN 上找不到它,但我确信它在某个地方,所以任何链接都会很棒:-)

最佳答案

逻辑线程是一个可以追溯到 COM、OLE 和 RPC 的概念,也适用于远程处理场景。当同步调用跨越各种边界(包括 COM 单元、RPC 和远程处理边界)传播时,逻辑线程会跟踪同步调用的执行情况。

当您考虑两个完全不相关的组件可能尝试在同一边界中执行操作的可能性时,这是一个非常重要的概念。 COM 等技术必须能够区分进入其边界(公寓)的新调用和完全不相关的调用,以保证同步执行等功能。

逻辑线程很难在一篇小型的 SO 帖子中解释清楚。我的建议是在 google/bing 中搜索“RPC 逻辑线程”并从那里开始

线程本地存储更容易解释。它是进程中每个线程唯一的存储单元。基本思想是首先分配一个 key 。然后,您可以查询每个单独的线程以获取具有该键的项目。每个线程将为键保留不同的空间,因此具有单独的值。

关于.Net:逻辑线程和线程本地存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1007277/

相关文章:

.net - 可移植 WCF 测试客户端 10 (Visual Studio 2010)

c# - LZ1压缩算法的实现

c# - 在连字符前拆分字符串-asp.net C#

c - 联锁函数和原子性 : still confused

c# - 美化 XmlDocument (.NET) 的最佳方法?

c# - 处理从 C++/MFC 应用程序中的 .NET dll 抛出的异常

c++ - fetch_sub 真的是原子的吗?

java - 工作完成后我应该停止线程吗?

java vs scala - 在单独的线程上读取文件

java - 使用线程自动更新Listview