1、常见的线程调度模型有哪些?

  1. 抢占式调度模型:<br /> 那个线程的优先级比较高,抢到的CPU时间片的概率就高一些/多一些。<br /> java采用的就是抢占式调度模型。
  2. 均分式调度模型:<br /> 平均分配CPU时间片。每个线程占有的CPU时间片时间长度一样。<br /> 平均分配,一切平等。<br /> 有一些编程语言,线程调度模型采用的是这种方式。<br />

2、java中提供了哪些方法是和线程调度有关系的呢?

  1. **实例方法:**<br /> void setPriority(int newPriority) 设置线程的优先级<br /> int getPriority() 获取线程优先级<br /> 最低优先级1<br /> 默认优先级是5<br /> 最高优先级10<br /> 优先级比较高的获取CPU时间片可能会多一些。(但也不完全是,大概率是多的。)<br /> <br /> **静态方法:**<br /> static void yield() 让位方法<br /> 暂停当前正在执行的线程对象,并执行其他线程<br /> yield()方法不是阻塞方法。让当前线程让位,让给其它线程使用。<br /> yield()方法的执行会让当前线程从“运行状态”回到“就绪状态”。<br /> 注意:在回到就绪之后,有可能还会再次抢到。<br /> <br /> **实例方法:**<br /> void join() <br /> 合并线程<br /> class MyThread1 extends Thread {<br /> public void doSome(){<br /> MyThread2 t = new MyThread2();<br /> t.join(); // 当前线程进入阻塞,t线程执行,直到t线程结束。当前线程才可以继续。<br /> }<br /> }
  2. class MyThread2 extends Thread{<br /> <br /> }