Mr.D.Chuang 2023-04-24 20:30 采纳率: 100%
浏览 21
已结题

求解:外循环每5秒打印一次,内循环每1秒钟打印一次。运行后发现同一秒钟内循环打印了很多次,这是为什么哈?

今天在开发的时候遇到使用循环等待打印的问题,要求:外循环每5秒打印一次,内循环每1秒钟打印一次。
代码如下:

    @Test
    void contextLoads() {
        Boolean success = false;
        int i = 1;
        long time1 = new Date().getTime();
        do {
            System.out.println("===》 外循环 -> 第"+ i + "次");
            i++;
            if (!success){
                int j = 1;
                long time2 = new Date().getTime();
                while (true){
                    long time3 = new Date().getTime();
                    if ((time3-time2) % 1000 == 0){
                        System.out.println("内循环 -> 第"+ j + "次 ,time3 =  "+ time3 + "  ,time2 =  " + time2);
                        j++;
                    }
                    if ((time3-time2) > 5 * 1000){
                        break;
                    }
                }
            }
            if ((new Date().getTime() - time1) > 20 * 1000){
                success = true;
            }
        }while (!success);
    }

但是运行后发现,每次内循环都打印了很多次,而且打印的时间都是一样的,如图:

img


img

这是什么原因哈? 烦请帮忙指点一下哈,十分感谢!

  • 写回答

1条回答 默认 最新

  • pzzhao 2023-04-24 20:41
    关注

    你要是隔几秒打印的话应该用 sleep 方法。而不是这样去无限循环。另外因为你这里没有 sleep,所以 (time3-time2) % 1000 == 0 会打印很多次。现在的电脑程序1毫秒内都是可以运行很多的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 创建了问题 4月24日

悬赏问题

  • ¥20 Html备忘录页面制作
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?
  • ¥20 数学建模来解决我这个问题
  • ¥15 计算机网络ip分片偏移量计算头部是-20还是-40呀
  • ¥15 stc15f2k60s2单片机关于流水灯,时钟,定时器,矩阵键盘等方面的综合问题
  • ¥15 YOLOv8已有一个初步的检测模型,想利用这个模型对新的图片进行自动标注,生成labellmg可以识别的数据,再手动修改。如何操作?
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 django5安装失败