java 并行 计时 问题

zings 2009-12-07 06:34:19
请问大家一个Java计时的问题。。。
就是我想使用一个计时器,当程序运行的时候,就计时,运行完了就停止。。如果运行的某些程序时间大于180秒,计时停止,强制退出。。。请问Java如何实现的....

我的程序一般运行很快,180秒是想判断 可 能 异常 执行之后退出。。。也可能数据太多也退出。。。

思路大致如下:
过5秒判断是否程序执行结束了。。结束了,计时停止,在执行下一个程序时,重新计时,再判断,。。。这样判断最多的时候是32次。。。

我知道用线程,但是不晓得具体怎么写,各位大哥给段代码看看。。。谢谢。。。
...全文
59 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmkjwjf 2009-12-08
  • 打赏
  • 举报
回复
设置一个全局Flag。执行任务前置为false,在执行任务完成后置该变量为true。另外的线程每隔5秒判断该Flag的值,并做相应处理。
SystemClock类来计时
zings 2009-12-08
  • 打赏
  • 举报
回复
是这样的,任务运行,同时开始计时,5秒判断任务是否完成,完成了,计时停止,执行下一个任务,同时重新开始计时,还是判断5秒是否结束了。。。如果5秒没结束,继续执行没结束的任务,过5秒判断该任务结束了没,如果没结束,在继续判断。。直到180秒之后,如果没结束,就强制结束,关闭计时器。。。如果结束了,就直接关闭计时器(同上面5秒以内的),执行下一个任务。。。。
就是同步运行计时监控。。。
不晓得说明白没有。。。。。知道的请指点一下。。谢谢。。。。
  • 打赏
  • 举报
回复
不太清楚你的思路。
zings 2009-12-08
  • 打赏
  • 举报
回复
不要沉没。。。
高手请回答下啊!!!
zings 2009-12-08
  • 打赏
  • 举报
回复
把上面的if判断改成如ls的ls所说的 ,就差不多。。。谢谢大家。。。
zings 2009-12-08
  • 打赏
  • 举报
回复

public class doWrite extends TimerTask {
public doWrite() {
}

String value;
Timer myTimer = new Timer();
// public doWrite(String str) { //测试
// this.str = str;
// }

public void doWrite( String value ) {
try {
// out.println(value); //
// out.flush(); //写入到刷新 , 执行同步
System.out.println( value );
}
catch( Exception e ) {
e.printStackTrace();
}
}

public void run() {
// doWrite(value);
}

public static void main(String args[]) {
doWrite myTask = new doWrite();
// long beginTime = System.currentTimeMillis();
myTask.start(0,15); //180秒 ... 15s test
boolean finished = true;
try{
while(finished){
Thread.sleep(5000);
// long endTime = System.currentTimeMillis(); //(endTime - beginTime) > 15000
if(value.indexof(">") > 0){ //如何判断dos执行结束? 判断任务已经完成,完成了,停止计时,继续执行下一个任务
finished = false;
System.out.println("--- false ---");
myTask.end();
}
}
}
catch(Exception e){
e.printStackTrace();
}
System.out.println("---disconnect---");
myTask.end(); //程序结束时用cancel()结束Timer

}

public void start(int delay, int internal) {
myTimer.schedule(this, delay * 1000, internal * 1000); //利用timer.schedule方法
}

public void end(){
myTimer.cancel();
}
}



写了个类似的方法,有点问题,修改整合中。。。
zings 2009-12-08
  • 打赏
  • 举报
回复
SystemClock类??
我就一般的应用程序,有这个?API没发现、、、我想说的是,不是swing下的。。。请指点下啊。。。
太白山鹰 2009-12-07
  • 打赏
  • 举报
回复
呵呵,我也不是很清楚,帮你顶一下

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧