关于定时启动线程的问题,很急急急,今天下班结贴! 需求是这样的,我每隔三个小时调用某个方法,需要用到线程时间控制问题,每隔三个小时执行一次方法,然后关闭线程,三个小时后再调用,意思很简单,我说的有点啰嗦,但是大家应该能明白,我需要的是具体代码,希望大虾门帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Timer myTimer = new Timer();myTimer .schedule(new MyTimerTask(), 0,60*1000*30);public class MyTimerTaskextends TimerTask { private Logger logger = Logger.getLogger(FenFaTimerTask.class); private static int IS_RUN = 0; public void run() { if(IS_RUN==0){ IS_RUN = 1; ........ IS_RUN = 0; }else{ logger.error("上次任务未结束"); } }} import java.io.IOException;import java.util.Timer;public class TimerTest { public static void main(String[] args){ Timer timer = new Timer(); timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务. while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了 try { int ch = System.in.read(); if(ch-'c'==0){ timer.cancel();//使用这个方法退出任务 } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } static class MyTask extends java.util.TimerTask{ @Override public void run() { // TODO Auto-generated method stub System.out.println("________"); } } } 大体代码如下:long time=1000*60*60*3 //单位是毫秒Timer timer=new Timer();timer.schedule(new TimerTask(){ public void run(){ //做你想做的事情 }},time,time); 太烦了·直接用spring的quartz配置时间就像 linux下面corntab。 请问下1楼的: int ch = System.in.read(); if(ch-'c'==0){ timer.cancel();//使用这个方法退出任务 }这里的ch 和'c'是什么意思 做什么的? 谢谢 public static void main(String[] args) { Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("call me..."); } }, 1000, 3000);//1000*60*60*3 //这个是程序启动后1s后每3s执行一次. } 项目中就用quartz,定时扫描很方便。 用Timer和TimerTask太烦了·直接用spring的quartz配置时间就像 linux下面corntab。 用Timer和TimerTask 时间上面设置一下就好了啊 使用quartz框架吧 实现起来很简单的 我也GOOGLE,但是楼上几位都是网上的那个方法,我试过了,有点不爽,我现在是测试编码阶段,线程一旦开启虽然是定时的,但是关闭不了,只能通过任务管理器来关,很麻烦! java 正则表达式 matcher.find()与group(i) java和c++如何传输汉字 怎样打印出一个文件的递归层次结构 java 讀取txt 問題 如何将long类型的数转化为16进制的子串? tcp/ip 我很郁闷 菜鸟问题-如何从一个frame调用一个Panel? JAVA?有何IDE好用?有Solaris平台上JDK为何不能做到至Turbo C 2.0那样的? [新手求助] JAVA web star 请看下我的步骤哪里出错了 用JTextArea,JList还是JTable显示ArrayList中的数据? 如果减少项目开发中的BUG,采用什么方案减少
Timer myTimer = new Timer();
myTimer .schedule(new MyTimerTask(), 0,60*1000*30);public class MyTimerTaskextends TimerTask {
private Logger logger = Logger.getLogger(FenFaTimerTask.class);
private static int IS_RUN = 0;
public void run() {
if(IS_RUN==0){
IS_RUN = 1;
........
IS_RUN = 0;
}else{
logger.error("上次任务未结束");
}
}}
import java.io.IOException;
import java.util.Timer;public class TimerTest {
public static void main(String[] args){
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();//使用这个方法退出任务
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static class MyTask extends java.util.TimerTask{ @Override
public void run() {
// TODO Auto-generated method stub
System.out.println("________");
}
}
}
long time=1000*60*60*3 //单位是毫秒
Timer timer=new Timer();
timer.schedule(new TimerTask(){
public void run(){
//做你想做的事情 }
},time,time);
配置时间就像 linux下面corntab。
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();//使用这个方法退出任务
}
这里的ch 和'c'是什么意思 做什么的? 谢谢
public static void main(String[] args)
{
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
public void run()
{
System.out.println("call me...");
}
}, 1000, 3000);//1000*60*60*3
//这个是程序启动后1s后每3s执行一次.
}
太烦了·直接用spring的quartz
配置时间就像 linux下面corntab。
时间上面设置一下就好了啊