Java守护线程 博客分类: 多线程
程序员文章站
2024-03-22 10:07:46
...
Java中创建的线程默认都是非守护线程(前台线程),JVM启动时,通常都会有单个非守护线程(main方法),如果需要创建守护线程(后台线程),则需要在启动线程前,调用setDaemon(boolean on)方法,守护线程通常是为非守护线程服务的,例如JVM的垃圾回收,当我们的程序结束的时候,垃圾收集器也就自动停止运行了,下面的代码中dt1与dt2被标记为守护线程,则当main方法中的程序运行结束后,dt1与dt2线程中run方法也自动结束,不再运行
public class DaemonThreadDemo { public static void main(String[] args) { DaemonThread dt1 = new DaemonThread(); DaemonThread dt2 = new DaemonThread(); // 必须在线程启动前调用,因为Java创建的线程默认为非守护线程 dt1.setDaemon(true); dt2.setDaemon(true); dt1.start(); dt2.start(); for (int i = 0; i < 10; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "...main..." + i); } } } class DaemonThread extends Thread { @Override public void run() { while (true) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + "...run..."); } } }
推荐阅读
-
回文距离 博客分类: java java
-
SpringMVC中JSP取不到ModelAndView的数据的原因 博客分类: java Java spring springMVC
-
JDK代理模式 博客分类: java
-
第五届在线编程大赛月赛第一题:完全平方数的个数 博客分类: java java
-
JDK代理模式 博客分类: java
-
Java守护线程 博客分类: 多线程
-
放苹果 博客分类: java
-
凯撒密码 史上最难的问题(呃,这是编程题目的名字,不是真的最难.....) 博客分类: java Java
-
字符串的完美度 博客分类: java java
-
SpringMVC中JSP取不到ModelAndView的数据的原因 博客分类: java Java spring springMVC