1
私は非常に奇妙な問題を抱えています。私は、2次元の "チェス盤"上を動くフィギュアのシミュレーションを構築する作業に取り組んでいます。各図は、Runnableインタフェースを実装するオブジェクトによって表されます。 問題は、私はそうのような別のスレッドで各オブジェクトを実行しようとすることです:何らかの理由で、私はこれをかなり確信しているだけで最初のスレッドstarts.And、run()メソッドについてはJavaで複数のスレッドを実行する
ArrayList<Thread> playerThreads = new ArrayList<Thread>();
ArrayList<Player> players = p.getSpawnedPlayers(); // This method returns all Runnable objects
for (Player pl : players)
playerThreads.add(new Thread(pl));
for (Thread pt : playerThreads)
{
pt.run();
}
プレイヤークラスの次のようになります。
public void run()
{
System.out.println("Player " + this.hashCode() + " starts moving...");
...
}
私は、単一のobject.Iからの出力を取得doublecheckedとの両方のArrayListオブジェクトの右の数が含まれていることを確認しました。 これはなぜ起こっているのでしょうか?
* facepalm *それが正しい方法であることを完全に忘れてしまった.Silly me :) –
答えを受け入れることを忘れないでください。Emil D. –
私のコメントの時点で、私は仮定した質問を掲示しました:) –