First Look at another diary
Executorservice pool = Executors.newfixedthreadpool (2);
Pool.execute (New MyTask (1));
Pool.execute (New MyTask (2));
System.out.println ("Wait Pool exit");
try {
Pool.shutdown ();
Pool.awaittermination (2, timeunit.seconds);
Pool.shutdownnow ();
System.out.println ("Wait pool exit OK");
catch (Interruptedexception e) {
TODO auto-generated Catch block
E.printstacktrace ();
}
The above code is to open a thread pool of size 2, perform 2 tasks, note that this combination
Pool.shutdown ();
Pool.awaittermination (2, timeunit.seconds);
Pool.shutdownnow ();
This is to close the thread pool and wait for up to 2 seconds, forcing all internal tasks to end if the wait time has not been closed
Note: You must first call shutdown to wait for awaittermination, otherwise the wait function will never return
Second, after the wait function timeout, does not go to terminate the unfinished tasks, must be terminated through the Shutdownnow