Package thread.concurrencyCookbook.chapter4.recipe7

Source Code of thread.concurrencyCookbook.chapter4.recipe7.Main

package thread.concurrencyCookbook.chapter4.recipe7;

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

/**
* PeriodictskExecution class of the example. Send 5 tasks to an scheduled executor
* Task 0: Delay of 1 second
* Task 1: Delay of 2 seconds
* Task 2: Delay of 3 seconds
* Task 3: Delay of 4 seconds
* Task 4: Delay of 5 seconds
*/
public class Main {

    /**
     * PeriodictskExecution method of the example
     *
     * @param args
     */
    public static void main(String[] args) {

        // Create a ScheduledThreadPoolExecutor
        ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

        System.out.printf("PeriodictskExecution: Starting at: %s\n", new Date());

        // Send the tasks to the executor with the specified delay
        for (int i = 0; i < 5; i++) {
            Task task = new Task("Task " + i);
            executor.schedule(task, i + 1, TimeUnit.SECONDS);
        }

        // Finish the executor
        executor.shutdown();

        // Waits for the finalization of the executor
        try {
            executor.awaitTermination(1, TimeUnit.DAYS);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // Writes the finalization message
        System.out.printf("Core: Ends at: %s\n", new Date());
    }
}
TOP

Related Classes of thread.concurrencyCookbook.chapter4.recipe7.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.