定时器java
‘壹’ java 定时器功能
这么干:
import java.util.Timer;
import java.util.TimerTask;
public class TimerTest {
public static void main(String[] args) {
final TimerTest test = new TimerTest();
Timer timer = new Timer();
timer.schele(new TimerTask() {
@Override
public void run() {
test.method1();
}
}, 0, 60000);
timer.schele(new TimerTask() {
@Override
public void run() {
test.method2();
}
}, 10000, 60000);
timer.schele(new TimerTask() {
@Override
public void run() {
test.method3();
}
}, 30000, 60000);
}
public void method1() {
System.out.println("method1 start!");
long startTime = System.currentTimeMillis();
long nowTime = System.currentTimeMillis();
while (nowTime - startTime < 10000) {
nowTime = System.currentTimeMillis();
}
System.out.println("method1 end!");
}
public void method2() {
System.out.println("method2 start!");
long startTime = System.currentTimeMillis();
long nowTime = System.currentTimeMillis();
while (nowTime - startTime < 20000) {
nowTime = System.currentTimeMillis();
}
System.out.println("method2 end!");
}
public void method3() {
System.out.println("method3 start!");
long startTime = System.currentTimeMillis();
long nowTime = System.currentTimeMillis();
while (nowTime - startTime < 30000) {
nowTime = System.currentTimeMillis();
}
System.out.println("method3 end!");
}
}
‘贰’ java 中定时器timer是被什么触发的
java中有个定时任务java.util.TimerTask用法很简单class MyTask extends java.util.TimerTask{@Overridepublic void run() {// 这个任何所执行的代码}}java.util.Timer timer = new Timer(true);//treu就是守护线程MyTask task = new MyTask();//开始执行任务,第一个参数是任务,第二个是延迟时间,第三个是每隔多长时间执行一次timer.schele(task, 0 , 1000 * 60 * 60 * 24);
‘叁’ java 定时器
把打印和写文件放在一个TimerTask子类中
然后通过Timer.scheledAtFixTime()启动这个task
具体参数请参考API
但是我不太明白你指的“定时器只有延时86400000毫秒(24小时)才能实现,”是什么意思
‘肆’ java类中的定时器
quartz中用有状态的任务,他会在重复执行任务前判断上一次是否已完成。
‘伍’ java定时器
importjava.io.IOException;
importjava.util.Timer;
publicclassTimerTest{
publicstaticvoidmain(String[]args){
Timertimer=newTimer();
timer.schele(newMyTask(),1000,2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了
try{
intch=System.in.read();
if(ch-'c'==0){
timer.cancel();//使用这个方法退出任务
}
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
staticclassMyTaskextendsjava.util.TimerTask{
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
System.out.println("________");
}
}
}
这段代码基本能满足你需求了 你还有需求就在上面再套一层job 当然如过太复杂了而且这种定时需求很多的话 建议用quartz框架 使用很简单
‘陆’ java定时器怎么停止
1、scheleUpdate
加入当前节点后,程序会每帧都会自动执行一次默认的Update函数。(注:一定是Update函数哦,若想调用其他自己命名的函数则使用schele)
看例子,走起。
首先在HelloWord类的头文件中声明Update函数:
[cpp] view plain print?
void update(float dt); //注意参数类型
然后在HelloWorld类源文件中实现函数Update:
[cpp] view plain print?
void HelloWorld::update(float dt)
{
CCLOG("");
}
现在我们可以调用了,在需要他不断执行的地方加入调用的代码就ok:
[cpp] view plain print?
this->scheleUpdate(); //this是当前节点,如layer,所以可以省略啦。
运行之后你将会看到不断有被打印出来
2、scheleUpdate
可以没隔几秒执行某个自定义的函数,来看代码:
首先还是在HelloWorld中声明所要执行的函数:
‘柒’ Java定时器的几种用法
设定指定任务task在指定时间time执行schele(TimerTasktask,Datetime)
设定指定任务task在指定延迟delay后进行固定延迟peroid的执行
设定指定任务task在指定延迟delay后进行固定频率peroid的执行
安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行
‘捌’ java定时器用什么实现
java定时器的使用(Timer)
1、在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。
对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。
private java.util.Timer timer;
timer = new Timer(true);
timer.schele(
new java.util.TimerTask() { public void run()
{ //server.checkNewMail(); 要操作的方法} }, 0, 5*60*1000);
第一个参数是要操作的方法,第二个参数是要设定延迟的时间,第三个参
数是周期的设定,每隔多长时间执行该操作。
使用这几行代码之后,Timer本身会每隔5分钟调用一遍
server.checkNewMail()方法,不需要自己启动线程。Timer本身也是多线程同
步的,多个线程可以共用一个Timer,不需要外部的同步代码。
2、
(1)Timer.schele(TimerTask task,Date time)安排在制定的时间执行指定的
任务。
(2)Timer.schele(TimerTask task,Date firstTime ,long period)安排指定
的任务在指定的时间开始进行重复的固定延迟执行.
(3)Timer.schele(TimerTask task,long delay)安排在指定延迟后执行指定的
任务.
(4)Timer.schele(TimerTask task,long delay,long period)安排指定的任务
从指定的延迟后开始进行重复的固定延迟执行.
(5)Timer.scheleAtFixedRate(TimerTask task,Date firstTime,long period)
安排指定的任务在指定的时间开始进行重复的固定速率执行.
(6)Timer.scheleAtFixedRate(TimerTask task,long delay,long period)安
排指定的任务在指定的延迟后开始进行重复的固定速率执行.
用Java Timer API 进行时间调度开发的相关注意点
java.util这个包中可以找到Timer和TimerTask这两个类。Timer直接从Object
继承,它相当于一个计时器,能够用它来指定某个时间来执行一项任务,或者
每隔一定时间间隔反复执行同一个任务。创建一个Timer后,就会生成一个线程
在背后运行,来控制任务的执行。而TimerTask就是用来实现某项任务的类,
它实现了Runnable接口,因此相当于一个线程。
‘玖’ java怎样启动定时器
ESET NOD32 我有激活号码你给我100分我就给你可以用6个月
‘拾’ java 定时器 timer
很简单的一个程序,两种实现方式,可以弄一个线程在一个while循环里一直跑,一次sleep一分钟,判断当前时间是否是你要的时间,如果是就触发你的任务。
另外一种方法是,直接计划三个任务,到时间它会自己执行:new Timer().schele(task, time);