У меня очень странная проблема. Я работаю над заданием, которое включает построение симуляции фигур, движущихся на 2-й "шахматной доске". Каждая фигура представлена объектом, реализующим интерфейс Runnable.
Проблема в том, что, когда я пытаюсь запустить каждый объект в отдельном потоке, вот так:
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();
}
По какой-то причине запускается только первый поток. И я довольно уверен в этом, метод run ()
Класс игрока выглядит так:
public void run()
{
System.out.println( "Player " + this.hashCode() + " starts moving..." );
...
}
Я получаю вывод только от одного объекта. Я дважды проверил и убедился, что оба ArrayLists содержат правильное количество объектов.
Есть идеи, почему это происходит?