Corba 服务器端有很多关于多线程的知识,但我对客户端很感兴趣。我们有一个多线程客户端(Solaris、Orbix 6.3)和一个初始化 ORB 的 Corba 单例“管理器”。在运行时 'lsof' 只显示一个到 Corba 服务器的 TCP 连接,因此所有从客户端工作线程进行的同步调用都应该被序列化。
想改变这种安排以利用并行性:每个线程管理自己的连接。我已经更改了设置,以便每个工作线程调用 ORB_init() 等而不是单例。
现在完全困惑:'lsof' 现在显示 2 个 TCP 连接,但有 6 个工作线程。有些事情不对劲,预计 TCP 连接数与工作线程数一样多。可能是这种方法很幼稚 - 例如每个线程调用 ORB_init() 是否有意义?
我需要有人对此发表意见。多线程客户端的示例代码将有很大帮助。同样,在 Solaris 上使用 Orbix 6.3。
亲切的问候,
阿德里安