我还没提交过,还不知道怎么做,呵呵,以后再说。//SimplePriorities.javapublic class SimplePriorities extends Thread
{
private int countDown = 30;
private volatile double d = 0;//No optimization

public SimplePriorities(int priority)
{
setPriority(priority);
start();
}
public String toString()
{
return  super.toString() +": "+countDown;
}
//run method.
public void run()
{
while(true)
{
//An expensive, interruptable operation:
for(int i=1;i<10000000;i++)
{
d = d + (Math.PI + Math.E)/(double)i;
}
System.out.println(this);
if(--countDown == 0 ) return;
}
}//End run method.

public static void main(String[] args)
{
new SimplePriorities(Thread.MAX_PRIORITY);
new SimplePriorities(Thread.MIN_PRIORITY);
new SimplePriorities(Thread.NORM_PRIORITY);
new SimplePriorities(Thread.NORM_PRIORITY);
}
}
运行结果:
Thread[Thread-0,10,main]: 30
Thread[Thread-0,10,main]: 29
Thread[Thread-0,10,main]: 28
Thread[Thread-0,10,main]: 27
Thread[Thread-0,10,main]: 26
Thread[Thread-0,10,main]: 25
Thread[Thread-0,10,main]: 24
Thread[Thread-0,10,main]: 23
Thread[Thread-0,10,main]: 22
Thread[Thread-0,10,main]: 21
Thread[Thread-0,10,main]: 20
Thread[Thread-0,10,main]: 19
Thread[Thread-0,10,main]: 18
Thread[Thread-0,10,main]: 17
Thread[Thread-0,10,main]: 16
Thread[Thread-0,10,main]: 15
Thread[Thread-0,10,main]: 14
Thread[Thread-0,10,main]: 13
Thread[Thread-0,10,main]: 12
Thread[Thread-0,10,main]: 11
Thread[Thread-0,10,main]: 10
Thread[Thread-0,10,main]: 9
Thread[Thread-0,10,main]: 8
Thread[Thread-0,10,main]: 7
Thread[Thread-0,10,main]: 6
Thread[Thread-0,10,main]: 5
Thread[Thread-0,10,main]: 4
Thread[Thread-0,10,main]: 3
Thread[Thread-0,10,main]: 2
Thread[Thread-0,10,main]: 1
Thread[Thread-2,5,main]: 30
Thread[Thread-3,5,main]: 30
Thread[Thread-2,5,main]: 29
Thread[Thread-3,5,main]: 29
Thread[Thread-2,5,main]: 28
Thread[Thread-3,5,main]: 28
Thread[Thread-2,5,main]: 27
Thread[Thread-3,5,main]: 27
Thread[Thread-2,5,main]: 26
Thread[Thread-3,5,main]: 26
Thread[Thread-2,5,main]: 25
Thread[Thread-3,5,main]: 25
Thread[Thread-2,5,main]: 24
Thread[Thread-3,5,main]: 24
Thread[Thread-2,5,main]: 23
Thread[Thread-3,5,main]: 23
Thread[Thread-3,5,main]: 22
Thread[Thread-2,5,main]: 22
Thread[Thread-2,5,main]: 21
Thread[Thread-3,5,main]: 21
Thread[Thread-3,5,main]: 20
Thread[Thread-2,5,main]: 20
Thread[Thread-2,5,main]: 19
Thread[Thread-3,5,main]: 19
Thread[Thread-3,5,main]: 18
Thread[Thread-2,5,main]: 18
Thread[Thread-2,5,main]: 17
Thread[Thread-3,5,main]: 17
Thread[Thread-3,5,main]: 16
Thread[Thread-2,5,main]: 16
Thread[Thread-2,5,main]: 15
Thread[Thread-3,5,main]: 15
Thread[Thread-2,5,main]: 14
Thread[Thread-3,5,main]: 14
Thread[Thread-3,5,main]: 13
Thread[Thread-2,5,main]: 13
Thread[Thread-2,5,main]: 12
Thread[Thread-3,5,main]: 12
Thread[Thread-1,1,main]: 30   //为什么在这边插进去一个低级线程?
Thread[Thread-3,5,main]: 11
Thread[Thread-2,5,main]: 11
Thread[Thread-2,5,main]: 10
Thread[Thread-3,5,main]: 10
Thread[Thread-3,5,main]: 9
Thread[Thread-2,5,main]: 9
Thread[Thread-2,5,main]: 8
Thread[Thread-3,5,main]: 8
Thread[Thread-3,5,main]: 7
Thread[Thread-2,5,main]: 7
Thread[Thread-2,5,main]: 6
Thread[Thread-3,5,main]: 6
Thread[Thread-3,5,main]: 5
Thread[Thread-2,5,main]: 5
Thread[Thread-3,5,main]: 4
Thread[Thread-2,5,main]: 4
Thread[Thread-3,5,main]: 3
Thread[Thread-2,5,main]: 3
Thread[Thread-3,5,main]: 2
Thread[Thread-2,5,main]: 2
Thread[Thread-3,5,main]: 1
Thread[Thread-2,5,main]: 1
Thread[Thread-1,1,main]: 29
Thread[Thread-1,1,main]: 28
Thread[Thread-1,1,main]: 27
Thread[Thread-1,1,main]: 26
Thread[Thread-1,1,main]: 25
Thread[Thread-1,1,main]: 24
Thread[Thread-1,1,main]: 23
Thread[Thread-1,1,main]: 22
Thread[Thread-1,1,main]: 21
Thread[Thread-1,1,main]: 20
Thread[Thread-1,1,main]: 19
Thread[Thread-1,1,main]: 18
Thread[Thread-1,1,main]: 17
Thread[Thread-1,1,main]: 16
Thread[Thread-1,1,main]: 15
Thread[Thread-1,1,main]: 14
Thread[Thread-1,1,main]: 13
Thread[Thread-1,1,main]: 12
Thread[Thread-1,1,main]: 11
Thread[Thread-1,1,main]: 10
Thread[Thread-1,1,main]: 9
Thread[Thread-1,1,main]: 8
Thread[Thread-1,1,main]: 7
Thread[Thread-1,1,main]: 6
Thread[Thread-1,1,main]: 5
Thread[Thread-1,1,main]: 4
Thread[Thread-1,1,main]: 3
Thread[Thread-1,1,main]: 2
Thread[Thread-1,1,main]: 1我的个人想法:
是不是这个是属于main的线程,此时他的优先级是5,要是真的如此,那又为什么会在这么后面才出来呢?(显示结果)。
还是另有原因?虚拟机的问题?........
各位大侠都说说自己的看法,个人感觉这个问题还是比较有深度的,不知道还有没有人发现类似的问题。准备把这个作为我第一个提交FAQ的问题,大家支持一下,呵呵。

解决方案 »

  1.   

    低优先级并不代表它就一定最后执行,只是执行的机会小而已,也仅此而已
    //在windows环境下,不同优先级的线程运行,调度器是采用抢占式调度,这个怎么解释?
      

  2.   

    to thumb3344(祖国啊,我只是一个摆地摊的!) ( )
    //在windows环境下,不同优先级的线程运行,调度器是采用抢占式调度,这个怎么解释?
    ==============================================================================
    在我的机子上有一次竟然出现
    Thread[Thread-0,10,main]: 30
    Thread[Thread-0,10,main]: 29
    Thread[Thread-0,10,main]: 28
    Thread[Thread-0,10,main]: 27
    Thread[Thread-0,10,main]: 26
    Thread[Thread-0,10,main]: 25
    Thread[Thread-3,5,main]: 30
    Thread[Thread-3,5,main]: 29
    Thread[Thread-3,5,main]: 28这该怎么解释?当然也是唯一的一次