import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;

public class ThreadPoolApp {
    public static void main (String [] args) {
        if (args.length < 2)
            ThreadPoolApp.error();
        try {
            int numberOfJobs = Integer.parseInt(args[0]);
            int numberOfThreads = Integer.parseInt(args[1]);
            if ((numberOfJobs < 1) || (numberOfThreads < 1))
                ThreadPoolApp.error();
            ExecutorService pool = Executors.newFixedThreadPool(numberOfThreads);

            Job [] jobs = new Job [numberOfJobs];
            for (int i = 0; i < numberOfJobs; i++) {
                jobs[i] = new Job (i);
                pool.execute(jobs[i]); //executes the command at some future time.
            }
            pool.shutdown(); // Shutdown : previously submitted tasks are executed,
// but no new tasks will be accepted.
            System.out.println ("Last line " + Thread.currentThread().getName());
        } catch (NumberFormatException e) {
            ThreadPoolApp.error();
        }


        private static void error() {
            System.out.println("ThreadPoolApp must be run with two positive valued " +
            " integer arguments. The first detailing the number of jobs " +
            " the second the number of processing threads in the pool");
            System.exit(0); // exit program
        }
}
@@ -1066,22 +1066,23 @@
       %7D%0A
-%0A%0A
     
+%7D%0A%0A
     priv
@@ -1104,23 +1104,18 @@
  error()
- 
 %7B%0A
-    
         
@@ -1342,28 +1342,24 @@
 %22);%0A        
-    
 System.exit(
@@ -1378,19 +1378,15 @@
 program%0A
-    
     %7D%0A%7D

add }