(一)线程的优先级
1:在Java中,线程优先级的范围是1~10,默认的优先级是5。
2:"高优先级线程"会优先于"低优先级线程"执行。但是如果说谁先完成这个是无法确定的。
(二)线程优先级的特性
1:继承性:线程A启动线程B,线程A和B具有相同的优先级。
Thread.currentThread().getPriority() 可以获取到是线程几执行,返回值是int
2:规则性:CPU尽量将执行的资源让给优先级高的线程用,但是不一定是优先级较大的线程先执行完。
3:随机性:即使线程没有设置优先级,并不能保证执行先后,线程运行具有随机性。
(三)守护线程
线程:用户线程和守护线程。
用户线程:执行用户级的任务。
守护线程:后台线程,一搬用户执行后台任务。
isDaemon()方法区分用户和守护:
如果返回false,则说明该线程是"用户线程";否则就是"守护线程"
Java虚拟机在"用户线程"都结束后,守护线程会退出。
守护线程和用户线程实践:
总结: