第一种方法:

    /**
* 先定义一个任务每天执行的时间点,再写一个死循环,不断地拿当前时间和事先定义的时间去比对,若到时间则执行任务
*/
@Test
public void test1() {
String taskTime = "13:43:10";
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
while (true) {
Date date = new Date();
if (sdf.format(date).equals(taskTime)) {
System.out.println("任务开始执行!");
try {
// 这里让线程睡眠一秒钟的原因是:若任务在1秒内执行完的话,会导致任务执行多遍,
// 任务执行完睡眠一秒钟,保证任务不会重复执行
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

第二种方法:若想测试,请一定用main方法,Test不行

    /**
* 利用ScheduledExecutorService这个接口实现
*/
public static void main(String[] args) {
Runnable runnable = new Runnable() { @Override
public void run() {
System.out.println("任务开始执行!"); }
};
ScheduledExecutorService sch = Executors.newSingleThreadScheduledExecutor();
// 第一个参数是要执行的线程
// 第二个参数是初始延迟时间
// 第三个参数是任务执行的间隔时间
// 第四个参数是计时单位,可以是时分秒等
sch.scheduleAtFixedRate(runnable, 10, 2, TimeUnit.SECONDS);
}

第三种方法:若想测试,请一定用main方法,Test不行

public static void main(String[] args) {
TimerTask task = new TimerTask() { @Override
public void run() {
System.out.println("任务开始执行!"); }
};
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
cal.set(year, month, day, 14, 1, 0);
Date date = cal.getTime();
Timer timer = new Timer();
timer.schedule(task, date, 2000);
}

Java实现定时任务的三种简单方法的更多相关文章

  1. java实现定时任务的三种实现方法

    转载于:https://blog.csdn.net/haorengoodman/article/details/23281343/ /** * 普通thread * 这是最常见的,创建一个thread ...

  2. java实现定时任务的三种方法 - 转载

    java实现定时任务的三种方法 /** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简 ...

  3. SuperDiamond在JAVA项目中的三种应用方法实践总结

    SuperDiamond在JAVA项目中的三种应用方法实践总结 1.直接读取如下: @Test public static void test_simple(){ PropertiesConfigur ...

  4. Java中Map的三种遍历方法

    Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历.   告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...

  5. java数组中的三种排序方法中的冒泡排序方法

    我记得我大学学java的时候,怎么就是搞不明白这三种排序方法,也一直不会,现在我有发过来学习下这三种方法并记录下来. 首先说说冒泡排序方法:冒泡排序方法就是把数组中的每一个元素进行比较,如果第i个元素 ...

  6. java实现定时任务的三种方法

    /** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现,代码如下: * @au ...

  7. UITableView设置单元格选中后只显示一个打勾的三种简单方法(仅供参考)

    1.第一种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态. - (UITableViewCell*)tableView:(UITableView* ...

  8. Java定时任务的三种实现方法

    译者注:个人觉得用定时任务来跑垃圾回收不是很好的例子,从译者接触到的项目来看,比较常见的是用定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法:1.普通thre ...

  9. [转]Java实现定时任务的三种方法

    在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...

随机推荐

  1. 第一篇:百度AI注册使用

    百度AI (https://ai.baidu.com/)点击右上角<控制台>进行登录 内容审核: 操作文档:

  2. 《机器学习_07_02_svm_软间隔支持向量机》

    一.简介 上一节介绍了硬间隔支持向量机,它可以在严格线性可分的数据集上工作的很好,但对于非严格线性可分的情况往往就表现很差了,比如: import numpy as np import matplot ...

  3. vue绑定数据之前 会看到源代码

    http://blog.csdn.net/fengjingyu168/article/details/72915468 VUE绑定数据闪现问题 问题描述如下: 1.在HTML中使用Vue为div绑定数 ...

  4. JVM_双亲委派机制

    双亲委派机制及作用 什么是双亲委派机制 当`.class`文件需要被加载时,它首先把这个任务委托给他的上级类加载器,层层往上委托,如果上级的类加载器没有加载过,自己才会去加载这个类. 源码分析 pro ...

  5. 【Mac】屏蔽系统升级更新

    三行代码解决Mac升级弹窗,小红点数字1

  6. 【解决办法】IIS环境中,打开网站后就直接列出了所有文件

    有时候访问一个不应当被访问的网站目录时网站会列出该目录下的所有文件,这很不安全,尤其是我们希望我们自己的网站不出现这种情况,如下图所示. 解决办法,在网站根目录新建web.config文件,内容如下: ...

  7. [优文翻译]001.真正程序员该是什么样的(How To Be A Real Programmer)

    01.Real Programmers don't write specs -- users should consider themselves lucky to get any programs ...

  8. nvm的安装,安装node,npm

    先说说我为什么使用nvm吧 最近在搞react-native,就碰到了很多坑,其中就有node带来的坑,当你运行react-native start (这是rn启动服务器的命令)就会报一个正则的错误, ...

  9. HTTP 冷知识 | HTTP 请求中,空格应该被编码为 %20 还是 + ?

    HTTP 请求中,空格应该被编码为什么?今天我们走进 RFC 文档和 W3C 文档,了解一下这个「史诗级」大坑. 1.%20 还是 + ? 开始讲解前先看个小测试,在浏览器里输入 blank test ...

  10. 如何提交本地代码到git仓库

    首先要先注册一个自己的GitHub账号,注册网址:https://github.com/join 有了自己的账号以后,就可以进行登录,开始创建一个新的项目 创建一个新的项目,填写项目名称,描述 我是和 ...