// // 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); } }