10、设置线程优先级

1、设置线程优先级

通过Thread类中的setPriority方法设置线程优先级

setPriority()方法接收一个int类型的参数,通过这个参数可以指定线程的优先级,取值范围是整数1~10,优先级随着数字的增大而增强。
在Thread类中封装了三个int类型的数字:

  • 优先级最低:public final static int MIN_PRIORITY = 1;
  • 优先级居中:public final static int NORM_PRIORITY = 5;
  • 优先级最高:public final static int MAX_PRIORITY = 10;
Thread thread1 = new Thread(()->{
            for (int i = 0; i < 5; i++) {
                System.out.println("我的优先级较低");
            }
        });

        Thread thread2 = new Thread(()->{
            for (int i = 0; i < 5; i++) {
                System.out.println("我的优先级较高");
            }
        });
        //thread1.setPriority(1);
        thread1.setPriority(Thread.MIN_PRIORITY);
        //thread2.setPriority(10);
        thread2.setPriority(Thread.MAX_PRIORITY);
        thread1.start();
        thread2.start();

2、线程优先级越高的线程并不一定先执行

  • Java线程是通过映射到系统的原生线程上来实现的,所以线程的调度最终还是取决于操作系统, 优先级反映的是线程占用资源的多少,优先级越高,占用资源越多,性能越好

3、守护线程

非守护进程一结束,守护进程立马就结束

Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (垃圾回收器),它就是一个很称职的守护者

  1. thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。你不能把正在运行的常规线程设置为守护线程。
  2. 在Daemon线程中产生的新线程也是Daemon的。
  3. 不要认为所有的应用都可以分配给Daemon来进行服务,比如读写操作或者计算逻辑。

守护进程

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 7,245评论 1 15
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 8,148评论 1 18
  • 概述 本文主要讲java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的线程函数用法等。首先让我们来了...
    Tian_Peng阅读 2,622评论 0 0
  • 一、认识多任务、多进程、单线程、多线程 要认识多线程就要从操作系统的原理说起。 以前古老的DOS操作系统(V 6....
    GT921阅读 4,643评论 0 3
  • 最近看到很多关于线程,进程,管理和使用的问题,所以觉得有必要总(zhuang)结(bi)一下! 一.线程(Thre...
    夏尼采阅读 3,764评论 2 9

友情链接更多精彩内容