2

あるプログラムで連結リストを作成し、別のプログラムでそれにアクセスする必要があるとします。どうやってやるの?

あるプログラムで Java のグローバル リンク リスト データ構造を使用しようとしましたが、別のプログラムではアクセスできないようです。リンクされたリストへの参照は、次のプログラムで取得できないと思います。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

主に 2 つのプログラムのヒープ メモリが異なるため、1 つのプログラムでリンク リストを作成して別のプログラムに完全に渡すことは基本的にできません。

ここに画像の説明を入力 プロセス アドレス空間

したがって、基本的には、これを実現するために何らかの通信メカニズムを使用する必要があります。

1. まず、1 つのプログラムでリンク リストを作成し、RPC 呼び出しを使用して一度に 1 つのノードだけを他のプログラムに送信できます。

2 またはリンクされたリストが存在する共有メモリを使用します。などのメカニズムを使用して、この共有メモリ ブロックで強制的に割り当てを行うことによってplacement new

JVM内で実行しているため。あなたはJavaプロセス間でJavaヒープを共有しています.RMIベースのメカニズムを使用してそれを行うことができると思います.

于 2012-06-26T01:40:29.297 に答える
0

リンクされたリストを Java プログラムで作成し、それを別のプログラムに渡すだけの場合は、リストを外部フォームに入れることでこれを行うことができます。これは、Java のシリアル化されたオブジェクト (他のプログラムが解釈する必要があります) にすることも、XML、JSON、独自の設計による自作形式、または任意の数の他の形式にすることもできます。その後、プロセス間通信 (ファイル、ソケット、または @yair がコメントで提供したリンクに記載されているその他のメカニズム) を介して他のプログラムに渡すことができます。

Java プログラムと他のプログラムとの間である種の双方向の対話が必要な場合は、ある種のリモート プロシージャ コールがおそらく最も簡単な ipc メカニズムです。

于 2012-06-26T02:01:44.533 に答える