JAVA 用户线程,后台进程

来源:互联网 发布:mac dota2 鼠标巨大 编辑:程序博客网 时间:2024/05/07 22:35

Java线程:

1. 用户线程/前台线程/普通线程:也就是平时code时, 默认情况下,直接 new Thr
ead()。 new Runnable()后的对象,没有设置 setDeamon(true) 的线程

2. 后台进程:在构造线程之后,start() 函数启动前, 调用 setDeamon(true)  将线程设置为后台进程。

用户线程和后台进程之间的区别:

1. 后台线程会随着主程序的结束而结束。用户线程会在主线程结束之后继续运行。

2. Java中setDeamon(true)以后这个线程就是后台进程,相应的线程变为守护线程,依赖jvm系统,当jvm没有非守护线程时,也就是主程序运行结束,则守护线程全部退出,jvm退出。


public class RunnableTest implements Runnable {    private String name;    private long delay;    public static void main(String args[]) {        RunnableTest r = new RunnableTest("i am a thread", 500);        Thread t = new Thread(r);        t.setDaemon(true);  //后台线程        System.out.println("t/f : " + t.isDaemon());        t.start();        System.out.println("end main");    }    public RunnableTest(String name, long delay) {        this.name = name;        this.delay = delay;    }    public void run() {        try {            while (true) {                System.out.println(name);                Thread.sleep(delay);            }        } catch (Exception e) {            System.out.println("Exception");        }    }}




0 0