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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring Boot集群管理工具KafkaAdminClient使用方法解析
这篇文章主要介绍了Spring Boot集群管理工具KafkaAdminClient使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-02-02
Maven 版本管理与 flatten-maven-plugin 插件的使用解析
这篇文章主要介绍了Maven 版本管理与 flatten-maven-plugin 插件的使用解析,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-07-07


最新评论