java如何动态执行while循环

 更新时间:2024年01月16日 09:35:59   作者:奈何、草  
这篇文章主要介绍了java如何动态执行while循环问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题描述

public void M1(int second){
        boolean flag = true;
        while(flag){
            //执行second秒后退出while循环
        }
    }

实现思路

设置一个定时器执行定时任务,到达指定时间后把flag的值设置成false

代码

import java.util.Timer;
import java.util.TimerTask;

public class Main {
    public static void main(String[] args) throws Exception {
        Timer timer = new Timer();//定时器
        int delay = 5;//秒
        Provider pd = new Provider(timer);
        pd.M1(delay);
        Thread.sleep(delay+100);
        timer.cancel();//注销定时器,否则虚拟机不退出
        
    }
}

class Provider{
    private Timer timer = null;
    public Provider(Timer timer){
        this.timer = timer;
    }
    
    public void M1(int second) {
        // TODO Auto-generated method stub
        class ScheduleHelper{
            public boolean flag = true;
        }
        final ScheduleHelper helper = new ScheduleHelper();//final内部类才能调用
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("set end");
                helper.flag = false;//设置结束
                
            }
        }, second*1000);
        while (helper.flag) {
                try {
                    Thread.sleep(1000);//1秒执行一次while循环
                    System.out.println("executing.....");
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
        }
        System.out.println("method end");    
    }
}

执行结果

executing.....
executing.....
executing.....
executing.....
executing.....
set end
executing.....
method end

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java基础javeSE程序逻辑控制语法

    java基础javeSE程序逻辑控制语法

    主要讲解Java中程序的逻辑控制语句包括 Java中的输入输出方式 顺序结构循环结构等,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • 解决maven项目tomcat启动失败war exploded:Error during artifact deploym问题

    解决maven项目tomcat启动失败war exploded:Error during 

    在SpringMVC项目中,使用war和warexploded两种部署方式可能会导致不同的路径问题,从而出现404错误,war模式将项目打包上传,而warexploded模式则保持文件夹结构上传,开发时建议使用warexploded模式,方便利用Update classes and resources功能自动更新
    2024-10-10
  • java生成随机字符串的两种方法

    java生成随机字符串的两种方法

    这篇文章主要为大家详细介绍了java生成随机字符串的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 一文带你掌握Java8中函数式接口的使用和自定义

    一文带你掌握Java8中函数式接口的使用和自定义

    函数式接口是 Java 8 引入的一种接口,用于支持函数式编程,下面我们就来深入探讨函数式接口的概念、用途以及如何创建和使用函数式接口吧
    2023-08-08
  • jedis操作redis的几种常见方式总结

    jedis操作redis的几种常见方式总结

    Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种,这篇文章主要给大家总结了关于在java中jedis操作redis的几种常见方式,文中给出了详细的示例代码供大家参考学习,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Java中的同步与异步详细介绍

    Java中的同步与异步详细介绍

    这篇文章主要介绍了Java中的同步与异步详细介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 浅谈MyBatis通用Mapper实现原理

    浅谈MyBatis通用Mapper实现原理

    这篇文章主要介绍了浅谈MyBatis通用Mapper实现原理,本文会先介绍通用 Mapper 的简单原理,然后使用最简单的代码来实现这个过程。感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Java基础教程之final关键字浅析

    Java基础教程之final关键字浅析

    这篇文章主要给大家介绍了关于Java基础教程之final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • springboot利用AOP完成日志统计的详细步骤

    springboot利用AOP完成日志统计的详细步骤

    项目用到了过滤器,可能有的人会不理解,之所以用过滤器是因为想要在日志记录post请求的json数据。本文重点给大家介绍springboot利用AOP完成日志统计的详细步骤,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • java 中mongodb的各种操作查询的实例详解

    java 中mongodb的各种操作查询的实例详解

    这篇文章主要介绍了java 中mongodb的各种操作查询的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09

最新评论