java循环同一接口调用

java后台需要一个一直循环调用一个接口的方法
调用同一个接口/方法,直到返回的数据满足某一条件例如list.size()==0的时候,方法停10分钟然后继续调用该接口/方法往复循环,不太清楚应该用死循环还是用线程或者用定时器相关的?又感觉死循环好像比较费性能感觉会宕机,希望可以指教下思路谢谢!

不知道你在做什么功能,但是你这个不断重试调用一个接口,其他人看到这样的方案或者代码会不会emo?

死循环和线程不矛盾呀
你可以建立个线程里面死循环
也可以异步调用(其实相当于不断的调用线程池)
也可以拖个timer,定时启动线程执行

两个没冲突,建议开个线程,因为死循环了,原来线程什么都干不了了。
新线程死循环中加入,例如:if (list.size == 0) Thread.sleep(10 * 60 * 1000); 时间怎么写自己决定。

参考



```java
package task6th;

//导入包下的类
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TimerTest02 {
    public static void main(String[] args) {
        
        //开启一个新的线程
        Timer t=new Timer();
        //调用shedule
        t.schedule(new Mytimer(),0);
        
        //使用try-catch语句,尝试执行,但是可能会出现异常的代码        
        try{
        for(int i=0;;i++){//使用for循环,循环打印出i
            System.out.println(i);
            Thread.sleep(1000);//休眠1秒,每隔1秒打印出i
        }
        }//把异常放入e中,捕获异常对异常做处理
        catch(InterruptedException e){
            e.printStackTrace();//打印异常信息
        }    
    }
}

//开一个线程继承TimerTask类,重写run()方法
class Mytimer extends TimerTask{
    public void run(){//重写run()方法
        try{
        while(true){ //定义死循环
            Date d=new Date();//创建日期对象
            //给sdf赋值为new SimpleDateFormat(),返回的值为当前日期
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd: HH:mm:ss");
            System.out.println(sdf.format(d));//输出当前日期
            Thread.sleep(1000*3);//休眠3秒打印一次当前时间
        }
        }catch(InterruptedException e){
            e.printStackTrace();
        }
    }
}


```

用创建新的线程好一些,避免长的调用链

第一次循环跳出后,发起新的线程(同时原线程随即结束),先sleep10分钟,再进入新的循环