java中实现多线程,可通过继承Thread类或实现Runable接口。实现Runnable接口比继承Thread类所具有的优势:适合多个相同的程序代码的线程去处理同一个资源;可以避免java中的单继承的限制;增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。

这里采用TimerTask来定时执行任务。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。

package ct.tool;import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;public class smooass {public static class FtpFileSnapshotTask extends TimerTask{  //每隔5分钟取ftp服务器上指定目录的文件名private int id;  public FtpFileSnapshotTask(int id){   this.id = id;  }  @Override  public void run() {   System.out.println("线程"+ id +":  正在 执行。。");    //System.gc();  }      }  public static class BaseLacCiSnapshotTask extends TimerTask{  //每天零点更新基站信息  private int id;  public BaseLacCiSnapshotTask(int id){   this.id = id;  }  @Override  public void run() {   System.out.println("线程"+ id +":  正在 执行。。");    //System.gc();  }      }  // 增加或减少天数  public static Date addDay(Date date, int num) {  Calendar startDT = Calendar.getInstance();  startDT.setTime(date);  startDT.add(Calendar.DAY_OF_MONTH, num);  return startDT.getTime();  }  private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;   //时间间隔(一天)  public static void main(String[] args) {  Timer timer = new Timer(); //启动ftp文件获取FtpFileSnapshotTask ftpTask=new FtpFileSnapshotTask(1);timer.schedule(ftpTask, 1000, 5*60*1000);// 1秒后启动任务,以后每隔5分执行一次线程           //启动基站文件获取Calendar calendar = Calendar.getInstance();  calendar.set(Calendar.HOUR_OF_DAY, 1); //凌晨1点  calendar.set(Calendar.MINUTE, 0);  calendar.set(Calendar.SECOND, 0);  Date date=calendar.getTime(); //第一次执行定时任务的时间  //如果第一次执行定时任务的时间 小于当前的时间  //此时要在 第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。  if (date.before(new Date())) {  date = smooass.addDay(date, 1);  }  BaseLacCiSnapshotTask baseTask=new BaseLacCiSnapshotTask(2);timer.schedule(baseTask,date,PERIOD_DAY);//以date为参数,指定某个时间点执行线程           }
}

Java定时多线程任务实现(TimerTask)相关推荐

  1. java定时调度main方法_java相关:Spring中实现定时调度的几种方法

    java相关:Spring中实现定时调度的几种方法 发布于 2020-11-28| 复制链接 本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能 ...

  2. java 定时执行任务

    java 定时执行任务 固定某个时间,某个周期运行任务. 1. Timer定时器 封装与TimerTask类中. 用法,继承TimerTask类,创建Timer对象timer,schedule()调度 ...

  3. java并发多线程面试_Java多线程并发面试问答

    java并发多线程面试 Today we will go through Java Multithreading Interview Questions and Answers. We will al ...

  4. Java定时任务(一) Timer及TimerTask的案例解析及源码分析

    Java定时任务(一)  Timer及TimerTask的案例解析及源码分析 一.概述: 定时任务这个概念在Java的学习以及项目的开发中并不陌生,应用场景也是多种多样.比如我们会注意到12306网站 ...

  5. 项目中Java的多线程一般用在哪些场景?

    项目中Java的多线程一般用在哪些场景? 多线程使用的主要目的在于 举个简单的例子 伪代码 多线程的常见应用场景 多线程使用的主要目的在于 1.吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做 ...

  6. Java定时任务调度工具之Timer

    Java定时任务调度工具详解之Timer 导航: Java定时任务调度工具详解之Timer 一. 概述 1.1 课程介绍 1.2 Timer简介 1.3 实战演练 二. timer定时函数的用法 2. ...

  7. java面试题成都_成都汇智动力-java面试——多线程面试题

    原标题:成都汇智动力-java面试--多线程面试题 1.多线程有什么用?发挥多核CPU的优势 防止阻塞 便于建模 2.创建线程的方式继承Thread类 实现Runnable接口 至于哪个好,不用说肯定 ...

  8. 第十章 进程间的通信 之 Java/Android多线程开发(二)

    文章目录 (一)Java 多线程开发 1.1)线程状态 1.2)线程控制方法 (1.2.1)Synchronized (1.2.2)Volatile (1.2.3)ReentrantLock 1.3) ...

  9. Java使用多线程和GUI实现购买火车票<集合>

    文章目录 绪: 样例 DEMO--购票项目 项目要求 实现步骤 一.[车次.txt][Person类][Ticket类] 1.[车次.txt] 2.[Person类] 3.[Ticket类] 二.主窗 ...

最新文章

  1. SpringBoot-JPA入门
  2. 倦怠和枯燥_启动倦怠
  3. JavaScript基础知识(函数)
  4. 6.2 K-Means 算法步骤-机器学习笔记-斯坦福吴恩达教授
  5. mysql 单号,利用 MySQL 自增列生成订单号
  6. java连续输入_java – 要求用户进行多次输入
  7. OpenCV使用FacemarkAAM
  8. 免费的数字图书馆_不仅是书籍:您当地图书馆可能提供的所有免费数字资料
  9. 在雅加达EE TCK中使用Arquillian的可能方法
  10. 学计算机高中要买电脑,大一新生,打着学习的“口号”要求买电脑,父母到底该不该答应?...
  11. linux cacti 搭建,linux下搭建cacti监控(示例代码)
  12. 读书笔记——《沉思录》(1/4)
  13. python练手经典100例-Python 的练手项目有哪些值得推荐?
  14. 40道JAVA经典算法面试题(答案)
  15. 钢构件建筑材料英国UKCA认证—EN 13381-8
  16. CSA云安全指南V4.0 D9 D10
  17. android 农历工具类,公历农历互相转换的Java日历工具类
  18. uni-app 分享给好友,生成小程序二维码海报
  19. 我讨厌单元测试:滕振宇谈如何进行单元测试
  20. 【前端技术】一篇文章搞掂:WeX5

热门文章

  1. win7html文件,教你win7浏览器打不开本地html文件格式的解决方法
  2. eclipse if代码折叠_仅需一页Java代码就能实现网页源码爬取
  3. IDE-Android Studio -FAQ-使用习惯(不断更新 欢迎留言)
  4. activity-alias的使用
  5. suffix tree
  6. iOS toolchain based on clang for linux
  7. ubuntu16.04 svn搭建多项目搭建多个版本仓
  8. shell test和find命令实例解析
  9. CE6内核启动过程-新角度
  10. 基于xp系统搭建android开发环境