> 文档中心 > 【并发编程二:Therad-api和main线程和子线程的关系】

【并发编程二:Therad-api和main线程和子线程的关系】


1.1Java线程Thread API

在这里插入图片描述

public synchronized void start()public void run()public static native Thread currentThread();public static native void sleep(long millis) throws InterruptedException;public final void setDaemon(boolean on)public final void join() throws InterruptedExceptionpublic static native void yield();public ClassLoader getContextClassLoader() / setpublic void interrupt();public final int getPriority() / set

(1)多线程执行创建几个虚拟机栈?

(2)Java多线程程序如何Debug调试?

在这里插入图片描述

1.2Java main线程执行结束后,在main线程中创建的子线程是否也自动结束?

线程可分为用户线程(user thread) 和 守护线程(daemon thread);
守护线程指在后台运行的线程,也称为后台线程,用于提供后台服务;
Java创建的线程默认是用户线程,如果要创建守护线程,需要单独设置;t1.setDaemon(true);

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

在一个应用中只要有任何一个用户线程还在运行,应用程序就不会退出,反正就会退出;

一个程序(Java程序,java web程序,tomcat)至少得有一个用户线程;
白话:守护线程要寄生在用户线程下生存,没有用户线程了,守护线程也就死了;

Thread类与守护线程有关的方法声明如下:
public final void setDaemon(boolean on)
//若on为true,则设置为守护线程,必须在启动线程前调用;
GC垃圾回收线程:就是一个经典的守护线程;
守护线程:清理数据、监控、告警;
在这里插入图片描述

在这里插入图片描述

WIFI共享精灵