COM如何确保在多核计算机上,如果你有一个COM的进程外服务器和一个相互依赖的COM客户端,那么它就会保持同步状态。在多核架构上运行它?
答案 0 :(得分:2)
在你的评论中,你会问如果COM客户端在一个线程和COM服务器上运行 - 在另一个线程上会发生什么。这两个线程驻留在不同的进程中(因为服务器是out-proc)。
如果您的客户端使用out-proc COM服务器COM子系统使用RPC(本地RPC)与服务器通信。这是为客户端透明地完成的 - 客户端调用方法,RPC准备带有所有参数的字符串,阻塞客户端线程,将调用传递给服务器,服务器处理调用abd返回给客户端。没有并发访问,因此没有额外同步的问题 - 所有同步都是自动完成的。
答案 1 :(得分:0)
由于您的COM服务器处于进程外,客户端和服务器的线程在不同的进程中运行。 Windows中的进程间同步机制跨核心或处理器工作,因此COM子系统已经为您处理任何多核/处理器问题。
如果您在服务器端没有客户端知道的情况下可能会更改数据,那么单CPU /核心也存在问题 - 您需要通过轮询(错误)或客户端通知界面(更好)来解决这个问题