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