Corbaサーバー側のマルチスレッド化についてはたくさんありますが、私はクライアント側に興味があります. ORB を初期化する Corba シングルトン「マネージャー」を備えたマルチスレッド クライアント (Solaris、Orbix 6.3) があります。実行時、'lsof' は Corba サーバーへの TCP 接続を 1 つだけ表示するため、クライアント ワーカー スレッドから行われるすべての同期呼び出しをシリアル化する必要があります。
並列処理を利用するためにこの配置を変更したいと思います: 各スレッドは独自の接続を管理します。シングルトンの代わりに各ワーカー スレッドが ORB_init() などを呼び出すようにセットアップを変更しました。
今は完全に困惑しています: 'lsof' は現在 2 つの TCP 接続を示していますが、6 つのワーカー スレッドがあります。何かが正しくありません。ワーカー スレッドの数と同じ数の TCP 接続が必要でした。アプローチが単純である可能性があります-たとえば、スレッドごとに ORB_init() を呼び出すことは理にかなっていますか?
これについて誰かの意見が必要です。マルチスレッドクライアントのサンプル コードは非常に役立ちます。ここでも、Solaris で Orbix 6.3 を使用しています。
敬具、
エイドリアン