COM+ 线程模型与活动同步机制详解
1. 线程安全代码与公寓模型概述
在不同的应用程序中,线程安全代码的范围存在很大差异。有些遗留应用程序完全不具备线程安全性,而有些精心设计的应用程序则能巧妙运用线程同步原语。还有一些应用程序存在特殊的线程约束,比如依赖线程本地存储(TLS)或使用用户界面原语。
为了让应用程序在不重新架构自身同步策略的情况下使用其他应用程序的组件,COM 将对象的并发约束视为一种运行时要求。组件开发者需要决定线程策略,也就是正式所说的线程模型。
COM+ 引入了“公寓(Apartment)”的概念,它是一组具有相同并发约束的上下文的抽象集合。公寓的主要作用是帮助 COM+ 确定进程中的哪些线程可以在特定上下文中调度接口方法调用。一个进程可以包含一个或多个公寓,每个公寓又包含一个或多个上下文,如下图所示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef apartment fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
classDef context fill:#FFEBEB,stroke:#E68994,stroke-width:2px;
P(进程):::process --> A1(公寓 1):::apartment
P --> A2(公寓 2):::apartment
A1 --> C1(上下文 1):::context
A1 -->
超级会员免费看
订阅专栏 解锁全文
3141

被折叠的 条评论
为什么被折叠?



