java - 我的循环自己退出

标签 java multithreading algorithm loops user-interface

<分区>

我需要从这行代码中得到一个解决方案,我想执行 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);
                }

            }

最佳答案

System.exit(0);

System.exit 将退出所有 线程,包括您已启动的线程。

您应该等待所有线程停止后再退出。根据它们的组织方式,我会计算出要启动的线程数,并让它们全部等待主线程结束时的倒计时锁存器,或者更简单但更 hackily,让主线程包括:

while(true){

}

最后。

关于java - 我的循环自己退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19328739/

相关文章:

java - ConcurrentHashMap 包含值,但 size() 方法返回 0

c# - 使用 C# 的线程池问题

c++ - A* 寻路 - 巨大的开放 map 速度慢

java - 为 snmp4j MOTable 创建一个空行

java - 如何从 java 程序运行 Linux 终端命令

php - 在 PHP 中启动新进程/线程的最简单方法

java - Java中的复制算法

c++ - 尝试在C++中实现运行长度平滑算法

java - 如何读取文本文件并在 TextView 中显示?

java - 改造 - 调用中的参数无效