timer启动停止 thread启动停止
来源:互联网 发布:淘宝店铺出售骗局 编辑:程序博客网 时间:2024/06/05 05:07
》定时任务启动停止《
import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class TimerTest {private static Timer timer = new Timer();private static long start_ms = System.currentTimeMillis();public static void main(String[] args) {System.out.println("定时程序启动,时间:" + new Date());timer.schedule(new TimerTask() {public void run() {System.out.println("定时任务执行,时间:" + new Date());long now_ms = System.currentTimeMillis();boolean canFlag = (now_ms - start_ms) > 1000 * 60;if (canFlag) {System.out.println("定时任务取消,时间:" + new Date());timer.cancel();}}}, 1000 * 5, 1000 * 10);}}
定时程序启动,时间:Thu Nov 07 11:53:27 CST 2013
定时任务执行,时间:Thu Nov 07 11:53:32 CST 2013
定时任务执行,时间:Thu Nov 07 11:53:42 CST 2013
定时任务执行,时间:Thu Nov 07 11:53:52 CST 2013
定时任务执行,时间:Thu Nov 07 11:54:02 CST 2013
定时任务执行,时间:Thu Nov 07 11:54:12 CST 2013
定时任务执行,时间:Thu Nov 07 11:54:22 CST 2013
定时任务执行,时间:Thu Nov 07 11:54:32 CST 2013
定时任务取消,时间:Thu Nov 07 11:54:32 CST 2013
运行结果=======================
》线程启动停止《
发现一篇博文,看到晚了,尤其是第2、3页,水平比我这强多了...http://developer.51cto.com/art/200812/100482.htm
线程停止有API
thread.stop();// 废弃
thread.interrupt();// 可能抛出中断异常
最好就是让线程自然的结束,
这种一般是run()方法里写while循环的情况,
如果run方法里写的不是循环,而是一次操作(非重复执行),
而这种操作可能很耗时,超过忍耐点之后要提前结束,这时可调用thread.interrupt();
import java.util.Date;public class ThreadTest implements Runnable {private boolean stopFlag = false;@Overridepublic void run() {while (!stopFlag) {try {System.out.println("模拟耗时操作..." + new Date());Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}}}public boolean isStopFlag() {return stopFlag;}public void setStopFlag(boolean stopFlag) {this.stopFlag = stopFlag;}public static void main(String[] args) {ThreadTest tt = new ThreadTest();Thread thread = new Thread(tt);System.out.println("开始线程!" + new Date());thread.start();long start = System.currentTimeMillis();while (true) {long end = System.currentTimeMillis();boolean breakFlag = (end - start) > 30 * 1000;if (breakFlag) {System.out.println("结束线程!" + new Date());tt.setStopFlag(breakFlag);break;}}}}
运行结果=======================
开始线程!Thu Nov 07 12:17:08 CST 2013
模拟耗时操作...Thu Nov 07 12:17:09 CST 2013
模拟耗时操作...Thu Nov 07 12:17:11 CST 2013
模拟耗时操作...Thu Nov 07 12:17:13 CST 2013
模拟耗时操作...Thu Nov 07 12:17:15 CST 2013
模拟耗时操作...Thu Nov 07 12:17:17 CST 2013
模拟耗时操作...Thu Nov 07 12:17:19 CST 2013
模拟耗时操作...Thu Nov 07 12:17:21 CST 2013
模拟耗时操作...Thu Nov 07 12:17:23 CST 2013
模拟耗时操作...Thu Nov 07 12:17:25 CST 2013
模拟耗时操作...Thu Nov 07 12:17:27 CST 2013
模拟耗时操作...Thu Nov 07 12:17:29 CST 2013
模拟耗时操作...Thu Nov 07 12:17:31 CST 2013
模拟耗时操作...Thu Nov 07 12:17:33 CST 2013
模拟耗时操作...Thu Nov 07 12:17:35 CST 2013
模拟耗时操作...Thu Nov 07 12:17:37 CST 2013
结束线程!Thu Nov 07 12:17:39 CST 2013
运行结果=======================
- timer启动停止 thread启动停止
- android Timer TimerTask 启动与停止及常见无法停止问题解决
- 启动和停止服务
- Oracle启动停止命令
- 启动和停止数据库
- WebSphere启动和停止
- Sybase启动和停止
- oracle启动停止命令
- 命令行启动停止tomcat
- mysql启动停止方法
- 启动/停止mysql服务
- 批处理启动停止服务
- Oracle启动停止命令
- oracle10g 启动 停止 bat
- vncserver 启动、停止
- mysql启动和停止
- dos启动停止服务
- Nginx 命令启动停止
- c++重写、重载、重定义
- 提示框Toast
- iOS浅复制与深复制
- cURL
- 解决Google Chrome Canery 搜索结果不显示搜索栏的情况
- timer启动停止 thread启动停止
- Oracle中用exp/imp命令快速导入导出数据
- Android拍照和取相册并裁切
- Macintosh HFSPlus Filesystem for Linux
- Button
- laravel 实现 模块式开发
- Documentation/resource-control.txt
- 2.21 Adding Buttons to the User Interface with UIButton
- 在 Visual Studio 2010 中创建 ASP.Net Web Service