【java多线程与并发库】---传统java多线程<3> .线程分类

来源:互联网 发布:投资域名注意哪些问题 编辑:程序博客网 时间:2024/05/23 14:58

1、  java中用两种线程:

 

1  守护线程

 

      守护线程(Daemon)是比较特殊的一种低级别线程,一般被用于在后台为其它线程提供服务。比如当用户编写Word文档时,不断进行拼写检查的线程就是个守护线程,它不会影响用户编辑文件。典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,不需要占用大量的系统资源,多用于实时监控和管理系统中的可回收资源。

 

 

       

可以通过调用方法 isDaemon()来判断一个线程是否是守护线程,而将一个用户线程设置为守护线程的方法是在线程对象创建之前调用线程对象的setDaemon(boolean on)方法。true为守护线程,false为用户线程。

 

public class Daemons extends Thread {public Daemons(){this.setDaemon(true);//设置线程为守护线程/*setDaemon必须在线程启动之前调用,当线程运行时调用会发生异常如果要在一个守护线程中产生其他线程,那么新产生的线程都是守护线程 */this.start();}public void run(){while(true){System.out.println("daemon "+Thread.currentThread().getName()+" is running");try {sleep(500);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static void main(String[] args) {// TODO Auto-generated method stubfor(int i=0;i<5;i++){new Daemons();}}}


运行结果:

 

2)  用户线程

守护线程和普通线程的区别就在于守护线程不是应用程序的核心部分。当一个应用程序的所有非守护线程终止运行时,及时仍然有守护线程运行,应用程序也将终止。反之,只要有一个非守护线程运行,应用程序就不会终止。

 

 

 

 

原创粉丝点击