1
매우 이상한 문제가 있습니다. 저는 2 차원 "체스 보드"에서 움직이는 수치 시뮬레이션을 만드는 과제를 수행하고 있습니다. 각 도형은 Runnable 인터페이스를 구현하는 객체로 표현됩니다. 문제는 그 그래서 같이 다른 스레드에서 각 개체를 실행하려고 할 때 : 어떤 이유로, 첫 번째 스레드 starts.And 나는이 꽤 확신, 실행() 메소드에 대한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 두 ArrayLists 개체의 오른쪽 숫자를 포함하는지 확인 만든 하나의 출력을 얻을. 왜 이런 일이 발생하는지 알고 싶습니다.
* facepalm * 나는 그것이 올바른 방법 이었다는 것을 완전히 잊어 버렸습니다. 샐리 : –
대답을 잊지 말것. Emil D. –
너무 빨리 내 의견을 말할 때 그럴 수 없었다. 내가 가정 한 질문을 게시했습니다. –