多线程 定时器

定时器是一种特殊的多线程,使用Timer来安排一次或者重复执行某个任务

 1 package org.zln.thread;
 2
 3 import java.util.Date;
 4 import java.util.Timer;
 5 import java.util.TimerTask;
 6
 7 /**
 8  * Created by coolkid on 2015/6/21 0021.
 9  */
10 public class TestTimerTask extends TimerTask {
11     @Override
12     public void run() {
13         System.out.println(new Date());
14     }
15
16     public static void main(String[] args) {
17         Timer timer = new Timer();
18         TestTimerTask testTimerTask = new TestTimerTask();
19         timer.schedule(testTimerTask,1000,1000);
20
21     }
22 }

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\thread\TestTimerTask.java

小练习:

  间隔一分钟扫描某个目录下是否存在指定文件

 1 package org.zln.thread;
 2
 3 import java.io.File;
 4 import java.util.Date;
 5 import java.util.Timer;
 6 import java.util.TimerTask;
 7
 8 /**
 9  * Created by coolkid on 2015/6/21 0021.
10  */
11 public class TestTimerTask extends TimerTask {
12
13     private String path;
14     private boolean flag = true;
15
16     public TestTimerTask(String path) {
17         this.path = path;
18     }
19
20     @Override
21     public void run() {
22         File file = new File(path);
23         if (flag&&!file.isDirectory()&&file.exists()){
24             System.out.println(new Date()+"已检测到文件");
25             flag = false;
26         }
27         if (!flag){
28             System.out.println(new Date()+"已经检测到文件,无需再次检测");
29         }
30         if (flag&&(file.isDirectory()||!file.exists())){
31             System.out.println(new Date()+"未检测到文件");
32         }
33     }
34
35     public static void main(String[] args) {
36         Timer timer = new Timer();
37         TestTimerTask testTimerTask = new TestTimerTask("E:\\GitHub\\tools\\实用jar程序\\创建或删除标识文件\\zln.txt");
38         timer.schedule(testTimerTask,1000,60000);
39
40     }
41 }

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\thread\TestTimerTask.java

时间: 2024-10-13 15:35:36

多线程 定时器的相关文章

例说多线程定时器System.Timers.Timer

System.Timers.Timer是多线程定时器,如果一个Timer没有处理完成,到达下一个时间点,新的Timer同样会被启动,所以在使用Timer时需要注意. 下面的实例显示了Timer的使用方法. using System; using System.Threading; using System.Windows; namespace TimerExp { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> publ

Java多线程 定时器

Java多线程中的定时器(java.util.Timer)有定时执行任务的功能,通过设定定时器的间隔时间,会自动在此间隔后执行预先安排好的任务(java.util.TimerTask).timer.schedule(TimerTask,delay,interval time)第一个参数是需要执行的任务.此类的类型为java.util.TimerTask.第二个参数是执行任务前等待时间,第三个参数是间隔时间(单位为毫秒) package timer; import java.util.concur

PyQt5中Web操作与多线程定时器

1.装载外部网页页面'''用web浏览器控件QWebEngineView控件显示网页PyQt5和Web的交互技术 同时使用python和Web开发程序,混合开发 Python+JavaScript+HTML5+CSS技术程序混合可做丰富的UI语言之间互相调用 '''from PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWebEngineWidgets import

Java基础知识强化之多线程笔记01:多线程基础知识(详见Android(java)笔记61~76)

1. 基础知识: Android(java)学习笔记61:多线程程序的引入    ~    Android(java)学习笔记76:多线程-定时器概述和使用 

例说定时器System.Threading.Timer

本文通过实例演示System.Threading.Timer的使用方法. 下面是完整的实例代码. using System; using System.Windows; namespace ThreadingTimerExp { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { System.Threading.Timer timer;

C#中的多线程 - 多线程的使用 z

原文:http://www.albahari.com/threading/part3.aspx 专题:C#中的多线程 1基于事件的异步模式Permalink 基于事件的异步模式(event-based asynchronous pattern,EAP)提供了一种简单的方式,让类可以提供多线程的能力,而不需要使用者显式启动和管理线程.它也提供如下的功能: 协作取消模型(cooperative cancellation model) 工作线程完成时安全更新 WPF 或 Windows Forms 控

WPF-学习

1.整体解决方法.项目名都不要和类名一样. 2.public static const Const 定义的是静态常在对象初始化的时候赋值.以后不能改变它的值.属于编译时常量. Static 定义的是静态变量.可以再外部改变它的值 const和static readonly的确非常像:通过类名而不是对象名进行访问,在程式中只读等等.在多数情况下能混用.二者本质的差别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值.而static readonly是在运行时计算出其值的

【转】Android开发笔记(序)写在前面的目录

原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入门上:其次是想拾缺补漏,写写虽然小众却又用得着的东西:另外就是想以实用为主,不求大而全,但求小而精:还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来.个人的经

python线程障碍对象Barrier(34)

python线程Barrier俗称障碍对象,也称栅栏,也叫屏障. 一.线程障碍对象Barrier简介 # 导入线程模块 import threading # 障碍对象barrier barrier = threading.Barrier(parties, action=None, timeout=None) parties — 线程计数器,记录线程数量,也称线程障碍数量: action — 是一个可调用函数,当等待的线程到达了线程障碍数量parties,其中一个线程会首先调用action 对应函