30 lines
960 B
Java
30 lines
960 B
Java
// threads/CachedThreadPool.java
|
|
// (c)2016 MindView LLC: see Copyright.txt
|
|
// We make no guarantees that this code is fit for any purpose.
|
|
// Visit http://mindviewinc.com/Books/OnJava/ for more book information.
|
|
import java.util.concurrent.*;
|
|
|
|
public class CachedThreadPool {
|
|
public static void main(String[] args)
|
|
throws InterruptedException {
|
|
ExecutorService exec =
|
|
Executors.newCachedThreadPool();
|
|
for(int id = 0; id < 10; id++)
|
|
exec.execute(new SleepAndPrintTask(id));
|
|
exec.shutdown();
|
|
exec.awaitTermination(5, TimeUnit.SECONDS);
|
|
}
|
|
}
|
|
/* Output:
|
|
SleepAndPrintTask[2] pool-1-thread-3
|
|
SleepAndPrintTask[8] pool-1-thread-9
|
|
SleepAndPrintTask[7] pool-1-thread-8
|
|
SleepAndPrintTask[9] pool-1-thread-10
|
|
SleepAndPrintTask[6] pool-1-thread-7
|
|
SleepAndPrintTask[5] pool-1-thread-6
|
|
SleepAndPrintTask[1] pool-1-thread-2
|
|
SleepAndPrintTask[3] pool-1-thread-4
|
|
SleepAndPrintTask[0] pool-1-thread-1
|
|
SleepAndPrintTask[4] pool-1-thread-5
|
|
*/
|