对现成进行操作时 可以设置其优先权;如下
public class SimplePriorities extends Thread
{
private int countDown =5;
private static int threadCount=0;
private volatile double d=0;
public SimplePriorities(int pri)
{
super(""+ ++threadCount);
setPriority(pri);
start();
}
public String toString()
{
return "#"+" "+getName()+" "+":"+countDown;
}
public void run()
{
while(true)
{
for(int i=0;i<1000;i++)
d=d+(Math.PI+Math.E)/d;
System.out.println(this);
if(countDown--==0)
return;
}
}
public static void main(String [] args)
{
}
}
尽管main函数中new SimplePriorities(Thread.MAX_PRIORITY);位于
for(int i=0;i<5;i++)
new SimplePriorities(Thread.MIN_PRIORITY);
之后执行 但实际中 把它设置成最大优先权后 却第一个执行了;
输出如下:
# 1 :5
# 1 :4
# 1 :3
# 1 :2
# 1 :1
# 1 :0
# 2 :5
# 2 :4
# 2 :3
# 2 :2
# 2 :1
# 2 :0
# 3 :5
# 3 :4
# 3 :3
# 3 :2
# 3 :1
# 3 :0
# 4 :5
# 4 :4
# 4 :3
# 4 :2
# 4 :1
# 4 :0
# 5 :5
# 5 :4
# 5 :3
# 5 :2
# 5 :1
# 5 :0
# 6 :5
# 6 :4
# 6 :3
# 6 :2
# 6 :1
# 6 :0
E:/javawork/l
E:/javawork/l
# 6 :5
# 6 :4
# 6 :3
# 6 :2
# 6 :1
# 6 :0
# 1 :5
# 1 :4
# 1 :3
# 1 :2
# 1 :1
# 1 :0
# 2 :5
# 2 :4
# 2 :3
# 2 :2
# 2 :1
# 2 :0
# 3 :5
# 3 :4
# 3 :3
# 3 :2
# 3 :1
# 3 :0
# 4 :5
# 4 :4
# 4 :3
# 4 :2
# 4 :1
# 4 :0
# 5 :5
# 5 :4
# 5 :3
# 5 :2
# 5 :1
# 5 :0