JAVA基础:线程优先级和精灵线程

目录

前言

线程优先级

精灵线程


前言

线程存在的目的是为了提升代码的效率,以前的程序只有主线程自己执行是串行的,这样的代码效率低 ,多线程执行的代码是并行的,多个线程同时执行代码,这样的效率高,但是线程并不是越多越好,线程的执行需要获取CPU才能执行,而CPU的数量是有限的,并且java的线程还是抢占式的,这时就会出现一个问题,如果有一个线程要执行的代码是更重要的,我们需要让这个线程更早的执行,如果线程的优先级都一样就可能会导致这个线程一直抢不到CPU

线程优先级

我们可以给线程手动设置优先级,设置更高的优先级可以增加线程抢到CPU的几率

注意:并不是优先级更高就一定比优先级低的线性先抢到CPU,只是获得CPU的几率更大

thread.setPriority(9);

可以使用上面的方法设置线程优先级

通过源码可知,线程优先级的最小值是1,默认是5,最大是10

精灵线程

精灵线程也叫守护线程,是可以通过方法设置的

     Thread thread = new Thread();
        thread.setDaemon(true);

通过这个方法可以将一个线程设置为精灵线程

守护线程是用来守护主线程的,我们创造的所有线程都叫做用户线程,如果主线程执行完了自己的代码,而用户线程没有执行完毕,这时主线程就会卡住,等待用户线程执行完毕再结束程序

守护线程的作用就是如果主线程执行完毕,不管守护线程是否执行完毕,主线程都会结束程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值