Topic: 线程优先级问题

  Print this page

1.线程优先级问题 Copy to clipboard
Posted by: potomac
Posted on: 2005-08-24 00:26

下面的程序,为什么有时候输出:
Thread_3
Thread_1
Thread_2

有时候输出是:

Thread_1
Thread_3
Thread_2



Thanks in advance.


//SchedTest.java

public class SchedTest {

  public static void main(String[] args) {
    MyThread t1 = new MyThread();
    t1.setName("Thread_1");
    t1.setPriority(5);
    
    MyThread t2 = new MyThread();
    t2.setName("Thread_2");
    t2.setPriority(4);
    
    MyThread t3 = new MyThread();
    t3.setName("Thread_3");
    t3.setPriorityDevil;
    
    t1.start();
    t2.start();
    t3.start();
  }
}

class MyThread extends Thread{
  public void run(){
    System.out.println(getName());
  }
}

2.Re:线程优先级问题 [Re: potomac] Copy to clipboard
Posted by: wddodo
Posted on: 2005-08-25 10:23

我觉得与你使用的JDK版本有关系,以前的版本对线程处理有问题。我用的1.5.4显示结果始终是
Thread_3
Thread_1
Thread_2

3.Re:线程优先级问题 [Re: potomac] Copy to clipboard
Posted by: wonderfuture
Posted on: 2005-09-01 06:48

线程问题很复杂:首先,线程启动要消耗一段时间,这个时间可能小有差异,从而有可能导致线程启动先后循序的不一致. 其次,线程优先级是一个概率模型,高优先级仅是前抢占时间的可能性增加了(只增加几个百分点),不能用确定化模型去理解


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923