多线程基础(二)
线程的优先级
线程的优先级有10个等级,分别用数字1-10表示
1是最低优先级,10为最高,5为默认
理论上优先级越高的线程获取CPU时间片的次数就越多。
线程是不能主动获取CPU时间片的,只能被动的分配,通过调整优先级可以最大程度改善获取时间片的次数。
interrupt方法
interrupt方法用于中断线程。调用该方法的线程的状态为将被置为”中断”状态。
注意,当一个线程调用sleep方法后进入阻塞状态,在这个过程中
若被其他线程调用了该线程的interrupt方法中断时,
这时并非直接将该线程中断,而是会打断其睡眠阻塞,这时sleep方法会抛出中断异常
总结,当一个线程处于阻塞时,interrupt方法可以中断阻塞状态;当一个线程不处于阻塞状态, interrupt方法用于中断线程
守护线程
守护线程也被称为后台线程,默认创建的线程都不是守护线程,也可称为默认创建的线程为普通线程或前台线程
守护线程在使用上与普通线程一样,但是在结束时机上有一点不同,即:进程结束时
进程的结束:当一个进程中的所有普通线程都结束时,进程就会结束,这时
进程中所有运行的守护线程都会被强制中断
其实GC就是跑在守护线程上的、通常当一个任务我们不关心其何时结束,只要主要的业务都执行完毕后 可以跟着结束的任务就可以运行在一个守护线程上。