COM+ 编程中的多线程与安全机制解析
多线程编程相关问题
多线程编程在实际应用中面临诸多挑战,其中保护对象免受并发访问就是一个复杂的编程任务。在多线程环境下,多个线程可能同时访问和修改同一个对象,这可能导致数据不一致或其他错误。为了简化组件开发,COM+ 为开发者提供了多种线程策略选择。COM+ 引入了单元(apartment)的概念来处理组件使用的线程策略,不同类型的单元决定了调用如何分发到该单元。
为了实现对对象的同步访问,COM+ 提供了基于活动的同步机制。这种机制确保在同一时间只有一个线程可以访问对象,从而避免并发访问带来的问题。开发者还可以利用 COM+ 提供的基础设施,采用各种技术来开发线程安全的代码。
Windows NT 安全系统基础
在深入探讨 COM+ 安全模型之前,有必要先了解 Windows NT 安全系统的基础知识。在 Windows NT(Windows 2000 基于 NT 技术)中,每个用户或组被称为一个账户,每个账户由一个安全标识符(SID)唯一标识。当新账户添加到系统时,系统会生成一个 SID 并分配给该账户。像 LocalSystem 和 Administrator 这样的内置账户有预定义的 SIDs。
Windows NT 是一个高度安全的操作系统,系统中的大多数对象,如 NTFS 文件、注册表项、进程和线程等,都可以进行配置,使其仅对选定的账户可访问,这些对象被称为可安全对象。每个可安全对象都有一个安全描述符(SD),其中包含:
- 所有者 SID:用于标识对象的当前所有者,所有者始终可以访问该对象。
- discretionary 访问列表(DACL):决定哪些账户可以访
超级会员免费看
订阅专栏 解锁全文

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



