Java 复习 —— 守护线程以及线程监测工具
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1、守护线程 Java线程机制分为两种 ,用户线程(User Thread)和守护线程(Daemon Thread)。 用户线程:运行在前台,执行具体的任务。例如:程序的主线程,连接网络的子线程。 守护线程:运行在后台,为其他线程提供服务的。例如:垃圾回收器线程 线程异同:一旦所有的用户线程都运行结束,守护线程会随JVM一起退出,其实这就是守护线程应该的生命周期,因为他是服务于其用户线程的线程,当用户线程一旦执行完毕,守护线程的职责就结束了,理该退出!但是用户线程是不会在主线程结束的时候而退出的。 线程应用:用户线程一般执行在特定的任务上,守护线程一般使用在 数据库连接池中的监测线程,JVM启动后监测线程等。 2、API Thread t1 = new Thread(sample); t1.setDaemon(true); t1.start(); 1)thread.setDaemon(true)必须在thread.start()之前设置,否则会跑出一个IllegalThreadStateException异常。换句话说,你不能把正在运行的常规线程设置为守护线程。 2) 在Daemon线程中产生的新线程也是Daemon的。 3)注意读写操作或者计算逻辑是不能使用守护线程的。因为在Daemon