How to use Java timer Timer
timer function repeatedly triggers the timer event of the specified window within the specified time interval. Syntax Timer (interval {, windowname }) Parameter interval: Specify the time interval between triggering the Timer event twice. The valid value is between 0 and 65. This article mainly introduces the use of Java timer Timer in detail, which has certain reference value. Interested friends can refer to it.
The scheduled task function in Java mainly uses the Timer object, which uses multi-threading for processing internally, so it is still very closely related to multi-threading technology. In the JDK, the Timer class is mainly responsible for the function of scheduling tasks, that is, starting a task at a specified time, but the class that encapsulates the task is the TimerTask class.
By inheriting the TimerTask class and implementing the run() method to customize the task to be executed:
public class Mytask extends TimerTask { @Override public void run() { DateFormat dateFormat = TimeUtil.df.get(); System.out.println("我的任务运行了" + dateFormat.format(new Date())); } }
By executing Timer.schedule(TimerTask task,Date time) Run the task at execution time:
public class Run { private static Timer timer=new Timer(); public static void main(String[] args) throws ParseException { timer.schedule(new Mytask(), TimeUtil.df.get().parse("2017-09-14 09:19:30")); } }
Remarks: Time conversion tool class to ensure thread safety:
public class TimeUtil { public static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { @Override protected DateFormat initialValue() { return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } }; }
2. Notes on Timer class
1. Creating a Timer object means starting a new thread, but This newly started thread is not a daemon thread. It has been running in the background. You can set the newly started Timer thread as a daemon thread as follows.
private static Timer timer=new Timer(true);
2. Advance: When the planned time is earlier than the current time, the task will be run immediately.
3. Delay: TimerTask is run sequentially one by one in a queue, so the execution time may not be consistent with your expected time, because the previous task may take longer, and the later tasks may The running time will be delayed. The specific start time of the delayed task is based on the "end time" of the previous task
4. Periodic operation: Timer.schedule(TimerTask task,Date firstTime,long period ) Execute the task every period milliseconds starting from firstTime:
5. schedule(TimerTask task, long delay) The current time is the reference time, and the delay is based on this time Execute a TimerTask task after the specified number of milliseconds.
6. Schedule (TimerTask task, long delay, long period) The current time is the reference time. Based on this, the specified number of milliseconds is delayed, and then a certain task is executed an unlimited number of times at a certain interval.
7. What is the difference between Timer’s cancel() and TimerTask’s cancel()?
As mentioned earlier, tasks are executed one by one in a queue. TimerTask.cancel() refers to canceling the current task from the task queue. The value of Timer.cancel() is to cancel all tasks in the current task queue. It is worth noting that Timer's cancel() sometimes does not necessarily stop executing the scheduled task, but executes it normally. This is because the cancel() method in the Timer class sometimes does not compete for the queue lock, so the tasks in the TimerTask class continue to execute normally.
3. The difference between scheduleAtFixedRate(TimerTask task,Date firstTime,long period) and schedule(TimerTask task,Date firstTime,long period)
Same points:
1. The method schedule and the method scheduleAtFixedRate will be executed in order, so there is no need to consider non-thread safety.
2. Method schedule and method scheduleAtFixedRate If the execution time of the task is not delayed, then the execution time of the next task is calculated with reference to the "start" time of the previous task.
3. Method schedule and method scheduleAtFixedRate If the execution time of the task is delayed, then the execution time of the next task is calculated with reference to the time when the previous task "ended".
Difference:
There is basically no difference in usage between method schedule and method scheduleAtFixedRate , that is, scheduleAtFixedRate has catch-up execution. What does it mean? That is, if a task is interrupted during periodic running, scheduleAtFixedRate will try to make up for the previously dropped tasks. Ignore the schedule and just run the next task. You can refer to this blog, which is very vivid.
The above content is how to use Java timer Timer. I hope it can help everyone.
Related recommendations:
C# Example introduction of timer Timer
Detailed explanation of the use of Timer in C# and solving reentrancy issues
Detailed explanation of Java timer (Timer, TimerTask) and example code
The above is the detailed content of How to use Java timer Timer. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.
