Java:线程的优先级

本文介绍了Java中线程的优先级,包括MAX_PRIORITY、MIN_PRIORITY和NORM_PRIORITY。通过示例展示了如何使用getPriority()获取和setPriority(int)设置线程优先级。虽然高优先级线程更可能获得CPU执行权,但并不保证绝对的执行顺序。最后,代码演示了创建并调整线程优先级的过程。
摘要由CSDN通过智能技术生成

1:等级

  • MAX_PRIORITY:10
  • MIN _PRIORITY:1
  • NORM_PRIORITY:5 -->默认优先级

2:如何获取和设置当前线程的优先级:

  • getPriority():获取线程的优先级
  • setPriority(int p):设置线程的优先级

说明:高优先级的线程要抢占低优先级线程cpu的执行权。但是只是从概率上讲,高优先级的线程高概率的情况下被执行。并不意味着只有当高优先级的线程执行完以后,低优先级的线程才执行。

class HelloThread extends Thread{
    public HelloThread(String name) {
        super(name);
    }
    public HelloThread(){
    }
    @Override
    public void run(){
        System.out.println(Thread.currentThread().getName()+"正在执行");
    }
}

public class ThreadMethodTest {
    public static void main(String[] args) {
        //创建线程的时候设置名字,需要在子类中定义一个有参的构造方法并通过super调用父类有参的构造方法
        HelloThread helloThread = new HelloThread("分线程");
        //默认分线程和主线程的优先级都是5
        System.out.println(helloThread.getName()+"的优先级:"+helloThread.getPriority());
        System.out.println(Thread.currentThread().getName()+"的优先级:"+Thread.currentThread().getPriority());
        helloThread.setPriority(Thread.MAX_PRIORITY);
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
        System.out.println("-----");
        //设置分线程和主线程的优先级
        System.out.println(helloThread.getName()+"的优先级:"+helloThread.getPriority());
        System.out.println(Thread.currentThread().getName()+"的优先级:"+Thread.currentThread().getPriority());

        helloThread.start();
        System.out.println(Thread.currentThread().getName()+"正在执行");
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值