2013-10-11 63 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将退出所有线程,包括你已经开始了的。

您应该等待所有线程在退出之前停止。根据它们的组织方式,我可以计算出要开始的线程数,并让它们全部等待最后主线程的倒计时锁存器,或者更简单但更棘手的是,主线程包括:

while(true){ 

} 

最后。

+0

是的,我仍然需要有条件停止它?我的意思是我的病情只想在计数器10遇到时退出。我想如果计数器小于10线程将启动不是吗?那么如果它是10,它应该做系统性的,倒计时闩锁实际上意味着什么? – ProblematicSolution

+1

@ProblematicSolution我不认为你明白线程的要点是什么。一个线程将独立于其他线程运行,所以当你启动它时它将独立运行。这里的要点是,你需要在尝试应用线程之前学习线程概念。 – hexafraction

0

你已经开始了新的主题后,他们会拿自己的课程..

你可以使用join()函数,以确保他们完成运行..