multithreading - 多线程 Corba 客户端

标签 multithreading corba

在 Corba 服务器端有很多关于多线程的内容,但我对客户端感兴趣。我们有一个多线程客户端(Solaris、Orbix 6.3)和一个初始化 ORB 的 Corba 单例“管理器”。在运行时,'lsof' 只显示一个到 Corba 服务器的 TCP 连接,因此从客户端工作线程发出的所有同步调用都应该被序列化。

想改变这种安排以利用并行性:每个线程管理自己的连接。我已经更改了设置,以便每个工作线程调用 ORB_init() 等而不是单例。

现在完全不解:“lsof”现在显示 2 个 TCP 连接,但有 6 个工作线程。 有些地方不对,预期的 TCP 连接数与工作线程数一样多。可能是这种方法很幼稚——例如,每个线程调用 ORB_init() 是否有意义?

我需要有人对此发表意见。多线程客户端 的示例代码会有很大帮助。同样,在 Solaris 上使用 Orbix 6.3。

亲切的问候,

阿德里安

最佳答案

连接的管理是特定于普通 CORBA 的实现。每个供应商都有自己的专有方式来配置他们的行为。如果您检查 RTCORBA 规范,它有一个标准化的方法来配置如何使用客户端和服务器之间的连接。

我不知道 Orbix 是如何工作的以及它是否支持 RTCORBA,这可能是您可以从他们的手册中获得的信息。我知道 TAO 在客户端对线程有很多支持。默认情况下,当多个线程对同一服务器进行调用时,可以同时打开多个 tcpip 传输。

关于multithreading - 多线程 Corba 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562559/

相关文章:

eclipse - ACE TAO Corba Ubuntu 10.4 未定义对 CORBA::Object::_refcount_value() 的引用

java - 使用 CORBA 连接客户端(在 VirtualBox 上)和服务器(在本地主机上)- org.omg.CORBA.BAD_PARAM :

c# - 单个线程上的线程 WaitHandle

使用 Lambda 语法的 C# 匿名线程

Java 的 CORBA ORB 并连接到第 3 方命名服务

java - 使用 C++ 和 Java 的 CORBA 的 IPC

java - 如何检测我必须使用的 Helper 类来缩小我的 Corba 对象?

java - 从辅助线程在主线程上运行代码?

java - 如何从java中的线程传播异常?

java - 同步块(synchronized block)是否会阻止其他线程访问对象?