线程分类
线程分为用户线程和守护线程
1、用户线程
在前台运行的线程都是用户线程,例如主线程。
2、守护线程
守护线程一般为后台运行的线程,守护线程是用来为用户线程服务的。例如JVM中的线程都为守护线程,典型的有GC线程。
3、修改线程类型
通过在start()方法前调用 thread.setDaemon(true)可以把一个用户线程变成一个守护线程。
Thread thread = new Thread(new Runable);
thread.setDaemon(true);//默认为false表示用户线程,true表示守护线程
程序必须要确保用户线程执行完毕,才可以关闭。同时不用等待守护线程执行完毕,如后台记录操作日志,监控内存,垃圾回收等
一个Java应用程序中,其实至少有三个线程:main()主线程,gc() 垃圾回收线程,异常处理线程。当然如果发生异常,会影响主线程。其中,gc线程和异常处理线程都是守护线程。