java multiple timer_java - 在Android中使用单个计时器与多个计时器来调度TimerTask - 堆栈内存溢出...

我想我不完全了解Timer和TimerTask在Java和Android中的工作方式。 现在,我定义了许多定期任务,这些任务要在计时器中安排。

我想知道我应该使用单个计时器来安排任务,还是为每个任务使用不同的计时器实例? 计时器有自己的线程吗? 预定任务是否在新线程中执行? 后台发生了什么?

这些方法之间有什么区别?

方法1的样例代码:

private void initTasks() {

TimerTask task1 = new MyTimerTask1();

TimerTask task2 = new MyTimerTask2();

TimerTask task3 = new MyTimerTask3();

Timer timer = new Timer();

timer.schedule(task1, 0, TASK1_PERIOD);

timer.schedule(task2, 0, TASK2_PERIOD);

timer.schedule(task3, 0, TASK3_PERIOD);

}

class MyTimerTask1 extends TimerTask {

public void run() {

//do task1

}

}

class MyTimerTask2 extends TimerTask {

public void run() {

//do task2

}

}

class MyTimerTask3 extends TimerTask {

public void run() {

//do task3

}

}

方法2的样例代码:

private void initTasks() {

MyTimerTask1 task1 = new MyTimerTask1();

MyTimerTask2 task2 = new MyTimerTask2();

MyTimerTask3 task3 = new MyTimerTask3();

task1.start();

task2.start();

task3.start();

}

class MyTimerTask1 extends TimerTask {

private Timer timer;

public void run() {

//do task1

}

public void start() {

timer = new Timer();

timer.schedule(this, 0, TASK1_PERIOD);

}

}

class MyTimerTask2 extends TimerTask {

private Timer timer;

public void run() {

//do task2

}

public void start() {

timer = new Timer();

timer.schedule(this, 0, TASK2_PERIOD);

}

}

class MyTimerTask3 extends TimerTask {

private Timer timer;

public void run() {

//do task3

}

public void start() {

timer = new Timer();

timer.schedule(this, 0, TASK3_PERIOD);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值