论坛首页 编程语言技术论坛

JVM线程知多少

浏览 1603 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-01-09   最后修改:2012-01-09

本文已在黄金档上发表,原文链接:http://www.goldendoc.org/2011/11/jvm-thread/

两个问题

  1. 什么是守护线程?守护线程与非守护线程有什么区别?其应用场景有哪些?
  2. 一个简单的Java程序,启动后JVM创建了哪些线程,它们的作用是什么?

熟悉上面两个问题的同学可以绕过了,不太熟的同学可以继续往下看,哈哈!

守护线程

守护线程,又叫Daemon线程,它有以下几个特点:

  1. 守护线程通常由虚拟机自己使用,比如垃圾收集器的线程;
  2. Java程序可以把它任何创建的线程标记为守护线程;但必须在线程运行前设置
  3. Java初始线程(即开始于main方法的线程)是非守护线程;
  4. 只要还有任何非守护线程在运行,那么这个Java程序也在运行,即这个JVM实例还存活着;当JVM中的所有非守护线程都终止时,JVM实例将自动退出;

看下面这个例子:

1 public class DaemonTest {
2  
3     public static void main(String[] args) throws InterruptedException,
4             IOException {
5         Thread daemon = new Thread(new DaemonThread());
6         daemon.setName("My Daemon Thread");
7         daemon.setDaemon(true);
8         daemon.start();
9  
10         for (int i = 0; i < 10; i++) {
11             System.out.println("Main thread: " + i);
12 , Courier, monospace !important
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics