헤이 SO이 코드 내 프로그램이 코드를 실행하려고 처음 실행java.util.ConcurrentModificationException 프로그램
public void kill(double GrowthRate, int Death)
{
int before = population.size();
for (PopulationMember p : population)
{
int[] probs = ProbablityArrayDeath(GrowthRate,Death,(int)p.fitness());
if (probs[RandomNumberGen.nextRandomInt(0, 99)]==0)
{
population.remove(p);
}
}
System.out.println("Intial Population: "+before+", Deaths:"+(before- population.size())+", New Population: "+population.size());
}
와 함께 작업 중 하나 개 지옥을 가진 전문가의 메신저는이 오류 안타
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at Genetics.Population.kill(Population.java:181)
at Genetics.Population.run(Population.java:47)
at Control.Main.main(Main.java:35)
이 일반적으로 그들이 시도 동시에 같은 리소스에 액세스하는 이유 스레드 발생하는 오류 것으로 보인다 조금 주위를 이리저리 굴리는 데,하지만 날이 시스템에서 모든 멀티 스레딩하지 메신저 얻는 것입니다.
누군가는 이런 일이 이유를 설명하거나 주위에
많은 감사를 얻기 위해 해킹 생각할 수^_^
감사합니다. 내 코드가 작동하는 큰 덩어리가 있습니다. – Gwilym