线程优先权问题

对现成进行操作时 可以设置其优先权;如下

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值