小さなプログラミング演習でベクトルクロックを実装する必要があり、Javaを使用することに決めました。私の質問は、プロセスのベクトルクロックを操作する実際のアルゴリズムとは関係ありませんが、ほかのJavaプログラムや他のJavaプログラムから子プロセスを比較的簡単に初期化する方法はありますか?プロセスフォーク、子プロセスなど[Java]
私の最初の計画は次のとおりです。私は、開始するクライアント/子どもの数を決定し、次にこれらの子/クライアントが互いに通信し、それに応じて対応するベクトルクロックを更新することを決定する「メインプログラム」を持っています。開始されるクライアントの数は、「メインプログラム」に与えられた特定の入力ファイルの行数によって異なります。これらのクライアントプロセスを開始する最もエレガントな方法は何ですか?それぞれ2つのファイルと整数をパラメータとして取ります。ファイルは何をするか(クロックを送るか進めるか)を指示し、整数は設定ファイルのどの行からクライアントが使用するポート番号を選ぶかを指示します。
あなたの質問は何ですか? –
Javaや他の何かのスレッドやexec()バリエーションを使用するかどうか。以前は並行操作が必要なことは何もしていませんでした。また、各クライアントが初期化される前に、クライアントが入力を読み込んで動作するようになると、問題が生じる恐れがあります。これは簡単に防止されていますか? – treiman
カウントダウンラッチ(java.util.concurrent.CountDownLatch)のようなものを使用して、スレッドがあまり早く開始しないようにしてください。 – Erik