????????在线程中,我们把所有的线程分为两类,一类是守护线程一类是用户线程。
一、守护线程(后台线程) 守护线程的作用:守护线程是为用户线程服务的线程,当所有的用户线程执行结束之后,守护线程也会随之结束。
典型的守护线程:JVM中有一个垃圾回收器就是一个典型的守护线程,程序运行的时候他也在运行,当用户线程全部执行完毕之后,程序结束,守护线程也会直接结束。
二、用户线程 ????????main默认为用户线程
三、返回线程的类型 ????????我们想要知道某个线程的类型的时候可以用 线程.isDaemon() 来获得,若返回 true 表示该线程是守护线程,若返回 false 表示该线程使用户线程。
四、修改线程的类型 ????????我们想要指定一个线程的类型可以通过 线程.setDaemon(true/false) 来指定线程的类型,传入的参数为true表示规定为守护线程,若传入的参数为false则表示规定该线程为用户线程。 线程的类型不能在线程的运行期间进行修改,也就是不能在 线程.start() 之后使用,否则JVM会报错
五、线程类型的相关结论 1、主线程默认是用户线程 2、在用户线程中创建的线程默认为用户线程 3、在守护线程中创建的线程默认为守护线程 4、默认的线程类型我们也可以手动进行修改
六、用户线程与守护线程的不同 ????????用户线程在Java程序中非常重要,JVM一定会等到所有的用户线程执行完之后才会自然结束,而守护线程就不一样了,守护线程的存在是为了给用户线程服务的,所以当所有的用户线程都执行完毕之后,不管守护线程是否还在执行,JVM都会推出执行。
|