【问题标题】:.Net: Logical thread and Thread Local Storage?.Net:逻辑线程和线程本地存储?
【发布时间】:2009-06-17 14:09:53
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: .net multithreading


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 那么线程本地存储也只是一个概念,在.Net中可以通过使用CallContext类来实现?
    • @karstenkousgaard,线程本地存储是一种可用于 .Net、C++ 和大多数操作系统的技术。它独立于 CallContext 类。
    【解决方案2】:

    【讨论】:

    • 好吧,其实我找到了,上面说是Win32的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多