2

異なる構成ファイル(コマンドラインパラメーターとして)を使用して、同じJavaバイナリ(ソケットアプリケーション)の複数のインスタンスを実行することを考えています。JVMはこの状況を正しく処理しますか?言い換えれば、共通のリソース(ロックできるファイルなど)がない場合、このアプローチで問題が発生しますか?もしそうなら、私が注意する必要があることは何ですか。

4

4 に答える 4

10

コマンドラインからjavaの複数のインスタンスを開始すると、複数の実行中のJVMが取得されます(インスタンスごとに1つ)。

共有リソースがない場合は、まったく問題はありません。

于 2009-05-12T11:07:03.967 に答える
1

マシューが以前に指摘したように、共有リソースがない限り、問題は発生しないはずです。

もう少し付け加えると、JVM は Java プログラムの実行環境を提供するコンテナーのようなものであり、コマンド ラインから Java を呼び出すたびに作成される JVM です。

http://en.wikipedia.org/wiki/Java_Virtual_Machine

于 2009-05-12T11:21:40.230 に答える
1

多くのインスタンスがある場合、過度のメモリ使用と遅い起動時間の問題が発生する可能性があります。JRE の多くは共有されていますが、すべてではなく、一般的なアプリケーション コードとリソースでもありません。一部の JRE では、これをある程度修正しています。たとえば、最近のバージョンの IBM JRE 6 は、コンパイルされたアプリケーション コードを共有しています。

すべてのコードが適切に記述されている場合 (たとえば、変更可能な静的変数 (シングルトンを含む) がない場合)、単一のプロセスを使用することは問題になりません。

于 2009-05-12T11:54:27.717 に答える
0

問題ありません。実際、逆の場合は少し厄介だと思います。同じコンピューター内で起動可能なインスタンスの数を制限する(簡単な)方法がないということです。

于 2009-05-12T11:09:45.570 に答える