2013-10-11 3 views
0

코드 의이 라인에서 솔루션을 필요로 10 루프를 수행하고 10 싶습니다 system.exit(); 내 GUI가 그만 나가면 도움이 필요하다! 현재이 라인은 종료 것이다 그것을 당신이 시작 한 것을 포함 모든 스레드를 종료합니다 아무것도내 루프가 그냥 자체를 종료

int counter = 0; 
      while(true){ 
       counter++; 
      for (int i = 0; i < 5; i++) { 
       if(counter < 10){ 
        new Thread(new Person(bathroom, !isMale)).start(); 
        new Thread(new Person(bathroom, isMale)).start(); 
       } 
       else{ 
        System.exit(0); 
       } 

      } 

답변

3
System.exit(0); 

System.exit을 수행 나던.

종료하기 전에 모든 스레드가 중지 될 때까지 기다려야합니다. 그들이 어떻게 조직 될 수 있었는지에 따라 나는 시작해야 할 스레드의 수를 세고 결국 주 스레드와 함께 카운트 다운 래치에서 기다리도록하거나 많이보다 간단하지만 더 많은 hackily가 메인 스레드를 포함합니다. :

while(true){ 

} 

마지막에. 당신은 그들이 실행을 완료하기 위해 조인() 함수를 사용할 수

새 스레드를 시작한 후, 그들은 자신의 과정을 걸릴 것

+0

네, 수행 난 여전히이 필요합니다 그것을 멈추게하는 조건? 내 조건은 카운터 10이 충족되면 종료 만하고 싶다는 의미입니다. 카운터가 10보다 작 으면 스레드가 시작되지 않습니까? 10이되면 systemexit을 수행해야합니다. 카운트 다운 래치가 실제로 의미하는 것은 무엇입니까? – ProblematicSolution

+1

@ProblematicSolution 스레드의 요점을 이해하지 못했을 것입니다. 스레드는 다른 스레드와 독립적으로 실행되므로 시작할 때 독립적으로 실행됩니다. 여기서 중요한 것은 스레딩을 적용하기 전에 스레딩 개념을 배워야한다는 것입니다. – hexafraction

관련 문제