Java Reference
In-Depth Information
1
// Fig. 23.4: TaskExecutor.java
2
// Using an ExecutorService to execute Runnables.
3
import java.util.concurrent.Executors;
4
import java.util.concurrent.ExecutorService;
5
6
public class TaskExecutor
7
{
8
public static void main (String[] args)
9
{
10
// create and name each runnable
11
PrintTask task1 = new PrintTask( "task1" );
12
PrintTask task2 = new PrintTask( "task2" );
13
PrintTask task3 = new PrintTask( "task3" );
14
15
System.out.println( "Starting Executor") ;
16
17
// create ExecutorService to manage threads
18
ExecutorService executorService = Executors.newCachedThreadPool();
19
20
// start the three PrintTasks
21
executorService.execute(task1); // start task1
executorService.execute(task2); // start task2
executorService.execute(task3); // start task3
22
23
24
25
// shut down ExecutorService--it decides when to shut down threads
26
executorService.shutdown();
27
28
System.out.printf( "Tasks started, main ends.%n%n" );
29
}
30
} // end class TaskExecutor
Starting Executor
Tasks started, main ends
task1 going to sleep for 4806 milliseconds
task2 going to sleep for 2513 milliseconds
task3 going to sleep for 1132 milliseconds
task3 done sleeping
task2 done sleeping
task1 done sleeping
Starting Executor
task1 going to sleep for 3161 milliseconds.
task3 going to sleep for 532 milliseconds.
task2 going to sleep for 3440 milliseconds.
Tasks started, main ends.
task3 done sleeping
task1 done sleeping
task2 done sleeping
Fig. 23.4 | Using an ExecutorService to execute Runnable s.
Search WWH ::




Custom Search