Test.java Source code

Java tutorial

Introduction

Here is the source code for Test.java

Source

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class Test {
    public static void main(String[] args) throws InterruptedException {
        BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>();
        for (int i = 0; i < 10; i++) {
            final int localI = i;
            queue.add(new Runnable() {
                public void run() {
                    doExpensiveOperation(localI);
                }
            });
        }
        ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 10, 1000, TimeUnit.MILLISECONDS, queue);
        executor.prestartAllCoreThreads();
        executor.shutdown();
        executor.awaitTermination(100000, TimeUnit.SECONDS);
    }

    private static void doExpensiveOperation(int index) {
        System.out.println("Starting expensive operation " + index);
        try {
            Thread.sleep(index * 1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("Ending   expensive operation " + index);
    }
}