DelayQueue class is an unbounded blocking queue of delayed elements, in which an element can only be taken when its delay has expired.
Learn ExecutorService shutdown(), shutdownNow() and awaitTermination() APIs and how to use them correctly to shutdown executor under different conditions,
Learn to cancel a task submitted to an executor which is still has to be executed and has not been completed yet using cancel() method of Future object which allows you to make the cancellation operation.
Learn to execute a task after a period of time or execute it periodically using ScheduledExecutorService class in Java using ScheduledThreadPoolExecutor.
Learn to run multiple Callable tasks with ExecutorService.invokeAll(tasks) API and processing all the results returned from tasks in form of Future class instances in this ExecutorService Callable example.