线程问题

http://blog.csdn.net/xyls12345/article/details/26256693

Java中线程分为两种类型:用户线程守护线程。通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程。如果不设置次属性,默认为用户线程。

用户线程和守护线程的区别:

  1. 主线程结束后用户线程还会继续运行,JVM存活;主线程结束后守护线程和JVM的状态又下面第2条确定。

2.如果没有用户线程,都是守护线程,那么JVM结束(随之而来的是所有的一切烟消云散,包括所有的守护线程)。

import java.io.IOException;class TestMain4 extends Thread {
  public void run() {            //永真循环线程
      for(int i=0;;i++){
          try {
              Thread.sleep(1000);
          } catch (InterruptedException ex) {  }
          System.out.println(i);
      }
  }

  public static void main(String [] args){
      TestMain4 test = new TestMain4();
      test.setDaemon(true);    //调试时可以设置为false,那么这个程序是个死循环,没有退出条件。设置为true,即可主线程结束,test线程也结束。
      test.start();
      System.out.println("isDaemon = " + test.isDaemon());
      try {
          System.in.read();  // 接受输入,使程序在此停顿,一旦接收到用户输入,main线程结束,守护线程自动结束
      } catch (IOException ex) {}
  }}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,429评论 25 708
  • 前言 个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要...
    尧淳阅读 753评论 0 17
  • 也许你看到别人挣钱了,你就加入对方的行业,进去后才发现并不是眼中的那么好干!每个行业都不好干,但是都有干的出色的人...
    一只羊1237阅读 279评论 0 0
  • 好长时间没发帖,净想过年了,过年哈,倒腾工作总结和年货是大事。 这几天有人问我说:“最近看了好多教程,都老高大上了...
    老夫的天阅读 3,841评论 0 50

友情链接更多精彩内容