Home  >  Article  >  Java  >  How many ways are there to implement a Java timer?

How many ways are there to implement a Java timer?

WBOY
WBOYOriginal
2023-12-28 11:53:421087browse

How many ways are there to implement a Java timer?

There are many ways to implement Java timers. Common ones include the Timer class, ScheduledExecutorService interface and Quartz framework.

1. Timer class
The Timer class is a timer tool class provided by Java, which can be used to perform some scheduled tasks. It can implement simple timer functions, but there are some problems in a multi-threaded environment.

Code example:

import java.util.Timer;
import java.util.TimerTask;

public class TimerExample {
    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                // 定时任务的具体逻辑
                System.out.println("Task executed at: " + System.currentTimeMillis());
            }
        }, 1000); // 延迟1秒后执行
    }
}

2. ScheduledExecutorService interface
ScheduledExecutorService interface is an interface provided by Java for creating scheduled tasks. It is a sub-interface of ExecutorService and can be used after the specified delay. Or perform tasks on a regular basis.

Code example:

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduledExecutorServiceExample {
    public static void main(String[] args) {
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
        executor.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                // 定时任务的具体逻辑
                System.out.println("Task executed at: " + System.currentTimeMillis());
            }
        }, 0, 1, TimeUnit.SECONDS); // 每隔1秒执行一次
    }
}

3. Quartz framework
Quartz is a powerful open source scheduled task scheduling framework that can realize the scheduling of complex scheduled tasks.

Code examples:

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.JobBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;

public class QuartzExample {
    public static class MyJob implements Job {
        @Override
        public void execute(JobExecutionContext context) throws JobExecutionException {
            // 定时任务的具体逻辑
            System.out.println("Task executed at: " + System.currentTimeMillis());
        }
    }

    public static void main(String[] args) throws SchedulerException {
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.start();

        JobDetail job = JobBuilder.newJob(MyJob.class).build();

        Trigger trigger = TriggerBuilder.newTrigger()
                .startNow()
                .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(1)) // 每隔1秒执行一次
                .build();

        scheduler.scheduleJob(job, trigger);
    }
}

The above are code examples of commonly used scheduled task implementation methods in Java. You can choose the appropriate implementation method according to specific needs.

The above is the detailed content of How many ways are there to implement a Java timer?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn