对于线程的分类,我们可以简单划分为:
- 主线程 (每个进程只有一个主线程)
- 子线程
主线程: main方法
子线程:非主线程皆是子线程
子线程中可以简单划分为:
- 守护线程
- 非守护线程,即用户线程
守护线程:
主要是指 在进程中,为主线程提供一种通用服务的线程。
比如 gc线程
因为,主线程一旦结束或者销毁,
守护线程没有了守护对象,
也将同步进行结束或销毁。
非守护线程/用户线程:
通常异步处理一些业务或逻辑
守护线程与用户线程的关系:
用户线程在start之前可以通过setDaemo(true)来转变为守护线程。
如果在start之后调用setDaemo(true),
将会throw IllegalThreadStateException。