import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import com.bruceeckel.swing.*;
import com.bruceeckel.util.*;
public class SimplePriority extends JApplet {
JTextArea Xout = new JTextArea(10, 30);
public void init() {
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JLabel("SimplePriority!"));
cp.add(new JScrollPane(Xout));
int i;
for(i = 0; i < 5; i++)
new XSimplePriorities(i, Thread.MIN_PRIORITY);
i = 555 ;
new XSimplePriorities(i, Thread.MAX_PRIORITY);
}
public class XSimplePriorities extends Thread {
private int countDown = 3;
private volatile double d = 0; // No optimization
private int TID;
public XSimplePriorities(int ID, int priority) {
TID = ID;
setPriority(priority);
start();
}
public void run() {
while(true) {
// An expensive, interruptable operation:
for(int i = 1; i < 1000000; i++)
d = d + (Math.PI + Math.E) / (double)i;
Xout.append("Thread " + TID + ", Priority " + getPriority() + ": " + countDown + "\n");
if(--countDown == 0) return;
}
}
}
public static void main(String[] args) {
Console.run(new SimplePriority(), 600, 400);
}
}