ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); service.scheduleWithFixedDelay(new Runnable() { @Override public void run() { test1();//這是可以的 } }, delayMinutes, minuteInterval, TimeUnit.MINUTES); service.scheduleWithFixedDelay(new Runnable() { @Override public void run() { test2(); //這是可以的 } }, delayMinutes, minuteInterval, TimeUnit.MINUTES);
共用一個 newSingleThreadScheduledExecutor (這里不考慮 newScheduledThreadPool )
可以運行多個任務,但是
1: 這幾個任務是串行的,假設test2里有一個thread.sleep(20000)就會一直等待完成,才開始下一個
2: 一個掛掉,其它都掛,所以一般都是在test1()里面, try catch到問題
3.參考游戲里 世界刷點
4.定時任務,重啟服務器時,最好, 調用 shutdown ,確保停服會考慮正在運行的schedule, 不會導致數據丟失