问题
什么是守护线程?使用场景是什么?如何创建守护线程?
答案
守护线程
守护线程通常执行一些任务,当所有非守护线程终止的时候,JVM简单的丢弃掉所有现存的守护线程.一旦其它非守护线程执行完,不一定所有的守护线程都会执行完才退出,它们可能在非守护线程执行完后的某个时刻退出.
使用场景
来为其它线程提供服务支持.
守护线程的创建
为了创建一个守护线程,需要在调用thread.start()
方法之前调用thread.setDeamon()
方法.
代码如下:
Thread daemon = new Thread(()
-> System.out.println("Hello from daemon!"));
daemon.setDaemon(true);
daemon.start();
在上面这段代码中,上面的这段消息可能不会被打印出来,发生的场景是这样的:当main(()
方法执行完之后,守护线程才得到了执行的机会,这个时候非守护线程退出了,那么守护线程即使得到了执行的机会,也有可能被终止.所以通常不要在守护线程中做一些重要的操作,因为它们不一定能全部执行完.
网友评论