//Timer(String name)
//创建一个新计时器,其相关的线程具有指定的名称。javaapi上是这么写的,我想知道这里name的作用是不是能得到实例化后timer的句柄?比如在我的servlet有这样的代码:...
String Id = new Date().toString();
Timer timer = new Timer(Id);
...能否在另一个servlet或jsp中使用cancel方法停止指定Id的timer呢?
//创建一个新计时器,其相关的线程具有指定的名称。javaapi上是这么写的,我想知道这里name的作用是不是能得到实例化后timer的句柄?比如在我的servlet有这样的代码:...
String Id = new Date().toString();
Timer timer = new Timer(Id);
...能否在另一个servlet或jsp中使用cancel方法停止指定Id的timer呢?
import java.util.TimerTask;public class Test extends TimerTask {
private Timer timer = null; // 定时器 private static final long PERIOD = 1000; // 任务间隔时间
private int i = 1;
/**
* 构造
*/
public Test() {
timer = new Timer(false);
}
/**
* 启动定时任务
*/
public void start(){
//timer.schedule(this, 1000, Test.PERIOD); // 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
timer.scheduleAtFixedRate(this, 3000, Test.PERIOD); // 安排指定的任务在指定的延迟后开始进行重复的固定速率执行。
}
/**
* 结束定时任务
*/
public void stop(){
timer.cancel();
} /**
* 任务主体
*/
public void run() {
System.out.println(i++);
} public static void main(String[] args) {
Test test = new Test();
test.start();
}}
谢谢
你的例子是只有一个timer在运行吧?
我还是有个地方不理解
//timer = new Timer(false);
这里的参数false有什么作用吗?还有stop()函数如何使用才能cancel掉正在运行的特定某个timer呢?
Timer(boolean isDaemon) 创建一个新计时器,可以指定其相关的线程作为守护程序运行。
Timer(String name) 创建一个新计时器,其相关的线程具有指定的名称。
Timer(String name, boolean isDaemon) 创建一个新计时器,其相关的线程具有指定的名称,并且可以指定作为守护程序运行。 timer.cancel();不就cancel掉正在运行的特定某个timer
Timer timer = new Timer(Id1);
Timer timer = new Timer(Id2);然后怎么用timer.cancel()停止名称为Id1的timer呢?
Timer timer = new Timer(Id2);
不行,这样的话变量就重复了,连编译都不能通过
Timer timer = new Timer(Id)
每次有请求都会new一个timer我想知道能否通过Id(类似一个计数器,做自增赋值)来识别各个timer然后用cancel停止其中一个?ps.这里Timer(String name) 里name的参数我始终不明白...