ScheduledExecutorService is an ExecutorService that can schedule tasks for execution after a given delay, or execute periodically. Here, we have methods such as schedule(), scheduleAtFixedRate(), and scheduleWithFixedDelay​(). While schedule() is used for one-shot tasks, scheduleAtFixedRate() and scheduleWithFixedDelay() are used for periodic tasks.