java timer暂停_暂停/停止和启动/恢复Java TimerTask?
我有一個關于Java TimerTask的簡單問題。如何根據一定條件暫停/恢復兩個TimerTask任務?例如,我有兩個相互之間運行的計時器。當在第一定時器的任務內滿足一定條件時,第一定時器停止并啟動第二定時器,當在第二定時器的任務內滿足某個條件時也會發生同樣的事情。下面的課程正是我的意思:
public class TimerTest {
Timer timer1;
Timer timer2;
volatile boolean a = false;
public TimerTest() {
timer1 = new Timer();
timer2 = new Timer();
}
public void runStart() {
timer1.scheduleAtFixedRate(new Task1(), 0, 1000);
}
class Task1 extends TimerTask {
public void run() {
System.out.println("Checking a");
a = SomeClass.getSomeStaticValue();
if (a) {
// Pause/stop timer1, start/resume timer2 for 5 seconds
timer2.schedule(new Task2(), 5000);
}
}
}
class Task2 extends TimerTask{
public void run() {
System.out.println("Checking a");
a = SomeClass.getSomeStaticValue();
if (!a) {
// Pause/stop timer2, back to timer1
timer1.scheduleAtFixedRate(new Task1(), 0, 1000);
}
// Do something...
}
}
public static void main(String args[]) {
TimerTest tt = new TimerTest();
tt.runStart();
}
}
所以我的問題是,如何在timer2運行時暫停timer1,反之亦然?性能和時間是我的主要關注點,因為這需要在另一個正在運行的線程中實現。順便說一下,我試圖在Android上實現這些并發定時器。
謝謝你的幫助!
總結
以上是生活随笔為你收集整理的java timer暂停_暂停/停止和启动/恢复Java TimerTask?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sangfor云服务器更换系统,sang
- 下一篇: sangfor升级客户端