私はJavaのスレッドに少し問題があります。基本的には、スレッドの配列を作成し、それらを開始する。プログラムのポイントは、レースをシミュレートし、各競技者(すなわち各スレッド)の時間を合計し、勝者を選ぶことである。スレッドに関するいくつかの問題
競技者は1つのスペースを移動し、待機します(つまり、スレッドは5〜6秒の間にランダムにスリープします)。スレッドは、期待どおりに開始した順序で完了しません。
問題が発生しました。スレッドが完了するまでに要する合計時間を取得できます。私が望むのは、スレッドからのすべての時間を単一の配列に格納し、最も速い時間を計算できるようにすることです。
これを行うには、配列をmain.classファイルに配置する必要がありますか?私はそれがThreadクラスに置かれていればうまくいきません。それとも、私は第三のクラスを作るべきですか?
私はalittleが混乱している:それはいくつかのノートで、あなたがスレッドを起動する方法でそれを宣言するために細かいです/
私は 'ConcurrentHashMap'の代わりに、配列 – yegor256
はい、同様に動作し、スレッドがそのインデックスを認識するべきではありませんを使用することをお勧めします。 – Bozho
返信いただきありがとうございます。私は今すぐ実装しています。私はキーワードvolatileを使用することができます共有変数を考慮してBTW?スレッドが配列内の別の位置に書き込むので、これは過剰ですか? – Katana24