9、线程的优先级

版权声明:版权归 爱装逼的文艺小青年所有 https://blog.csdn.net/toyota_rav4/article/details/84843661

目录

 

优先级概念

线程之间相互调用时,优先级具有传播性

执行同样的任务,线程优先级的高低,在一定程度上决定了任务执行的快慢


优先级概念

线程的优先级决定了线程启动之后占用CPU资源的量(CPU优先执行优先级高的线程任务)。

优先级 1-10 如果设置优先级大于10或者小于1 都会报IllegalArgumentException()异常

线程之间相互调用时,优先级具有传播性

package com.demo7;

public class ThreadA extends Thread {
    @Override
    public void run() {
        System.out.println("ThreadA的优先级:" + this.getPriority());
        ThreadB threadB = new ThreadB();
        threadB.start();
    }
}
package com.demo7;

public class ThreadB extends Thread {
    @Override
    public void run() {
        System.out.println("ThreadB的优先级:" + this.getPriority());
    }
}
package com.demo7;

public class Run {
    public static void main(String[] args) {
        ThreadA threadA = new ThreadA();
        threadA.setPriority(8);
        threadA.start();
    }
}

运行结果:

ThreadA的优先级:8
ThreadB的优先级:8

执行同样的任务,线程优先级的高低,在一定程度上决定了任务执行的快慢

package com.demo8;

public class ThreadA extends Thread{
    private int count = 0;
    @Override
    public void run() {
        long beginTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000000; i++) {
            count = i + 1;
        }
        long endTime = System.currentTimeMillis();
        System.out.println("A线程花费时间:" + (endTime - beginTime));

    }
}
package com.demo8;

public class ThreadB extends Thread{
    private int count = 0;
    @Override
    public void run() {
        long beginTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000000; i++) {
            count = i + 1;
        }
        long endTime = System.currentTimeMillis();
        System.out.println("B线程花费时间:" + (endTime - beginTime));

    }
}
package com.demo8;

public class Run {
    public static void main(String[] args) {
        ThreadA threadA = new ThreadA();
        ThreadB threadB = new ThreadB();
        threadA.setPriority(9);
        threadB.setPriority(2);
        threadB.start();
        threadA.start();
    }
}

运行结果:

A线程花费时间:47
B线程花费时间:79

猜你喜欢

转载自blog.csdn.net/toyota_rav4/article/details/84843661