The Java Program: Priority.java

  1 // Priority.java
  2 
  3 class Priority implements Runnable {
  4    private final Thread t = new Thread (this);
  5    private final int maxcount;
  6  
  7    Priority (final int p, final int c) {
  8       maxcount = c;
  9       t.setPriority (p);
 10       t.setName ("A thread at priority " + p + " and count " + c);
 11       t.start();   // construct and go!
 12    }
 13 
 14    public void run() {
 15       // This task never voluntarily yields the processor.
 16       System.out.println ("BEGIN! " + t.getName());
 17       for (int i = 1; i <= maxcount; i++) {
 18          System.out.println (i + ". " + t.getName());
 19       }
 20       System.out.println ("DONE!  " + t.getName());
 21    }
 22 
 23    public static void main (String args[]) {
 24       final int p = Thread.currentThread().getPriority();
 25       System.out.println ("Begining main (priority=" + p + ")");
 26       final Priority [] handle = new Priority [args.length/2];
 27       for (int i=0; i<args.length; i+=2) {
 28          final int y = Integer.parseInt (args[i]);
 29          final int c = Integer.parseInt (args[i+1]);
 30          handle[i/2] = new Priority (y, c);
 31       }
 32       System.out.println ("The end of main.");
 33    }
 34 }