java定时器停止_java 定时器中任务的启动、停止、再启动
package com.cvicse.ump.timer.service;
import java.util.Date;
import java.util.Timer;
import com.cvicse.ump.timer.task.TimTaskTest;
/**
* 定时任务管理器
* @author dyh
*
*/
public class TimerManager {
/**
* 单例模式
*/
private static TimerManager timerManager = null;
private TimerManager(){}
public static TimerManager getInstance(){
if(timerManager == null){
timerManager = new TimerManager();
}
return timerManager;
}
/**
* 定时器
*/
private Timer timer = new Timer("homePageTimer");
/**
* 定时任务
*/
private TimTaskTest timerTask = null;
/**
* 启动定时任务
*/
public void startTimerTask(){
timer.purge();
if(timerTask==null){
timerTask = new TimTaskTest();
}
timer.schedule(timerTask, new Date(), 5000);
}
/**
* 定时任务取消
*/
public void stopTimerTask(){
timerTask.cancel();
timerTask = null;//如果不重新new,会报异常
}
}
TimerTask类和Timer类的cancel()方法详解
无论是TimerTask类还是Timer类,其cancel()方法都是为了清除任务队列中的任务。
虽然都是清除任务队列中的任务,却有一些不同:TimerTask类中的cancel()方法侧重的是将自身从任务队列中清除,其他任务不受影响,而Timer类中的cancel()方法则是将任务队列中全部的任务清空。
下面以具体示例进行演示。
TimerTask类中的cancel()方法测试:
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Test {
public static void main(String[] args) throws InterruptedException {
System.out.println("当前时间为:" + new Date());
Calendar c = Calendar.getInstance();
Date runDate1 = c.getTime();
System.out.println("计划时间为:" + runDate1);
MyTaskA task1 = new MyTaskA();
MyTaskB task2 = new MyTaskB();
Timer timer = new Timer();
timer.schedule(task1, runDate1, 4000);
timer.schedule(task2, runDate1, 4000);
}
}
class MyTaskA extends TimerTask {
@Override
public void run() {
System.out.println("A run timer=" + new Date());
this.cancel();// 调用的是TimerTask类中的cancel()方法
System.out.println("A任务自己移除自己,B任务不受影响,继续运行");
}
}
class MyTaskB extends TimerTask {
@Override
public void run() {
System.out.println("B run timer=" + new Date());
}
}
Timer类中的cancel()方法测试:
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class Test {
public static void main(String[] args) throws InterruptedException {
System.out.println("当前时间为:" + new Date());
Calendar c = Calendar.getInstance();
Date runDate1 = c.getTime();
System.out.println("计划时间为:" + runDate1);
MyTaskA task1 = new MyTaskA();
MyTaskB task2 = new MyTaskB();
Timer timer = new Timer();
timer.schedule(task1, runDate1, 4000);
timer.schedule(task2, runDate1, 4000);
Thread.sleep(12000);
timer.cancel();
System.out.println("A、B任务都移除了");
}
}
class MyTaskA extends TimerTask {
@Override
public void run() {
System.out.println("A run timer=" + new Date());
}
}
class MyTaskB extends TimerTask {
@Override
public void run() {
System.out.println("B run timer=" + new Date());
}
}
**注意:**Timer类中的cancel()方法有时不一定会停止计划任务,而是正常执行。
在Java应用中通过SparkLauncher启动Spark任务
本博客内容基于Spark2.2版本,在阅读文章并想实际操作前,请确保你有: 一台配置好Spark和yarn的服务器 支持正常spark-submit --master yarn xxxx的任务提交 老 ...
Linux Systemd——在RHEL/CentOS 7中启动/停止/重启服务
RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...
在CentOS 7中启动/停止/重启服务
RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...
java swing中Timer类的学习
最近在完成学校课程的java平时作业,要实现一个计时器,包含开始.暂停以及重置三个功能.由于老师规定要用这个timer类,也就去学习了一下,顺便记录一下. 首先呢去查了一下java手册上的东西,发现t ...
java定时器实现总结
前言:Java定时器目前主要有3种实现方式:JDK组件,Spring Task,Quartz框架. 1. JDK组件(1) java.util.TimerTask MyTimerTask.java: ...
SpringBoot项目快速启动停止脚本
SpringBoot项目快速启动停止脚本 1.在jar包同级目录下,创建 app.sh #!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] t ...
关于 Java(TM) Platform SE binary 已停止工作 的解决方法
一.问题描述 昨天晚上Myeclipse还用着好好的,今天早上打开工程,只要运行就卡住,大半天弹出个消息窗口:Java(TM) Platform SE binary 已停止工作. 如图 关闭Myecl ...
spring项目中如何添加定时器以及在定时器中自动生成sprng注入对象
最近做了一个java的项目,部门领导给了一套代码让我尽快掌握,说心里话本人真心不喜欢java的这种项目方式,各种配置各种xml文件简直头都大了,下面就将我遇到的其中一个我认为是坑的地方整理出来,希望能 ...
随机推荐
一行R代码来实现繁琐的可视化
ggfortify 有着简单易用的统一的界面来用一行代码来对许多受欢迎的R软件包结果进行二维可视化的一个R工具包.这让许多的统计学家以及数据科学家省去了许多繁琐和重复的过程,不用对结果进行任何处理就能 ...
CCNA网络基础(一)
现在我们使用这一个图来讲解网络的基础知识: 现在只看右边那个图,也就是两台主机和一个交换机 PC1 的配置是 IP 172.16.20.2/24 网关没有配 ...
Java 读取Properties配置文件
1.img_url.properties imgurl=http://10.1.19.65:8090 2.Test.java InputStream inputStream = this.getCla ...
Opencv中在图片上显示文本
1.cvPutText函数(在图像中加入文本) void cvPutText( CvArr* img, const char* text, CvPoint org, const CvFont* fon ...
98、EditText 按键盘查询 触发事件
只需要在XML在输入框中加入Android:imeOptions=”actionSearch”,调用软键盘时,回车键就会显示搜索二字. editSearch.setOnEditorActionList ...
CSS基础知识学习笔记
1.css基本样式讲解 1.1 css背景background-attachment:背景图像是否固定或者随着页面的其余部分滚动background-color:设置元素的背景颜色background ...
JavaScript and html的关系
HTML--------------------------->DOM, BOM, Event Request/Response------------->Ajax 日期处理 http:/ ...
linux上查找文件存放地点和文件中查找字符串方法
一.查找文件存放地点 1.locate 语法:locate locate命令实际是"find -name"的另一种写法,但是查找方式跟find不同 ...
简单 php 代码跟踪调试实现
简单 php 代码跟踪调试实现 debug_backtrace:生成回溯 debug_print_backtrace:打印回溯 1. debug_backtrace ($options = DEBUG ...
Deepin debian安装Libreoffice
Libreoffice LibreOffice 是一款功能强大的办公软件,默认使用开放文档格式 (OpenDocument Format , ODF), 并支持 .docx, .xlsx, *.ppt ...
java定时器停止_java 定时器中任务的启动、停止、再启动相关推荐
- java的成员方法_java编程中的成员方法是什么?
DIEA 成员方法描述对象所具有的功能或操作,反映对象的行为,是具有某种相对独立功能的程序模块.它与过去所说的子程序.函数等概念相当.一个类或对象可以有多个成员方法,对象通过执行它的成员方法对传来的消 ...
- java runnable 异常_JAVA 线程中的异常捕获
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...
- java swing背景_java Swing中添加背景图片(总结)
在java GUI图形化设计中,Swing组件添加背景图片主要有两中情况:1,在Jpanl面板中添加背景图片,2,在jLable中添加背景图片 首先介绍一种最巧妙的背景图片添加方法, 1.利用JLab ...
- java jnlp applet_通过chrome中的jnlp启动applet的问题
我有一个基于gwt的应用程序,试图通过jnlp文件(jws)启动applet . 像这样:How to display java applet inside GWT page? 我没有直接启动appl ...
- java定时器写法_java定时器的写法是什么样?
定时器的用法是java核心基础之一,很多特殊功能都需要用到定时器,下面一起来看看定时器是如何编写的吧. 示例:一个具备周期性定时(毫秒级);单时刻定时(秒级);多时刻定时(秒级).后两个时间的设置必须 ...
- java wait定时_java定时器的使用(Timer)
java定时器的使用(Timer) 1.在应用开发中,常常须要一些周期性的操作,比方每5分钟运行某一操作等. 对于这种操作最方便.高效的实现方式就是使用java.util.Timer工具类. priv ...
- java 定时器代码_Java定时器代码的编写
Java定时器代码的编写 在某些时候, 我们需要实现这样的`功能,某一程序隔一段时间执行一次,而这一事情由系统本身来完成,并不是人为的触发,我们一般可称此为定时器任务.其实到Java中,实现起来是非常 ...
- java定时器实例_Java定时器小实例
有时候,我们需要在Java中定义一个定时器来轮询操作,比如每隔一段时间查询.删除数据库中的某些数据等,下面记录一下一种简单实现方式 1,首先新建一个类,类中编写方法来实现业务操作 public cla ...
- java 定时器框架_java定时器
java定时器 什么是Java定时器? Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种: 通过Timer来实现定时任务 Timer 是来自 java.util.Ti ...
最新文章
- 【英文文本分类实战】之二——数据集挑选与划分
- 平衡二叉查找树 AVL 的实现
- Android之获取证书文件(pfx格式)的公钥和私钥
- 如何匹配两段文本的语义?
- mysql 重置表索引_MySQL如何进行索引重建操作?
- 每天一道算法题(10)——数对之差的最大值
- 学Python Web开发框架到什么程度可以找到开发的工作?
- create---创建表
- 5. 学习集合与常用类
- Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索
- 技术面试时该反问面试官什么问题?
- python打开记事本并输入内容_打开记事本输入文字
- HO-PLGA-COOR,酯封端聚(D,L-丙交酯-co-乙交酯)共聚物
- 如何禁用笔记本触摸板
- android查看当前手机中的进程
- AirFlow的Scheduling的start_date解释
- 计算机word模块试题,计算机word考试试题1(附答案)
- 考研复试专业课面试——C++
- python tkinter treeview_Python tkinter treeview列大小
- 网狐棋牌 二次开发流程