【线程调度-优先级】

线程有两种调度模型(Java 使用的是抢占式调度模型):

  分时调度模型:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间片

  抢占式调度模型:优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程获取的 CPU 时间片相对多一些。

线程默认优先级是5。 线程优先级的范围是:1-10。10表示最高优先级,1表示最低优先级,5是普通优先级。

线程优先级高仅仅表示线程获取的 CPU 时间片的几率高,但是要在次数比较多,或者 多次运行的时候才能看到比较好的效果。

package com.shusheng.tihuzhai.test;

/**
 * @author shusheng
 * @description
 * @Email shusheng@yiji.com
 * @date 2018/8/28 10:27
 */
public class ThreadPriority extends Thread{

    @Override
    public void run(){
        for(int x=0;x<100;x++){
            System.out.println(getName()+":"+x);
        }
    }

}
package com.shusheng.tihuzhai.test;

/**
 * @author shusheng
 * @description
 * @Email shusheng@yiji.com
 * @date 2018/8/27 19:10
 */
public class ThreadPriorityTest {

    public static void main(String[] args) {
        ThreadPriority tp1 = new ThreadPriority();
        ThreadPriority tp2 = new ThreadPriority();
        ThreadPriority tp3 = new ThreadPriority();

        tp1.setName("叶胖子");
        tp2.setName("王瘦子");
        tp3.setName("陈苗条");

        tp3.setPriority(10);
        tp2.setPriority(1);

        tp3.start();
        tp2.start();
        tp1.start();
    }

}
终身学习者
原文地址:https://www.cnblogs.com/zuixinxian/p/9544239.html