概述
问题描述:
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动态执行while循环的全部内容,希望文章能够帮你解决java动态执行while循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复