用户线程与守护线程

简介: 用户线程与守护线程

在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 。
用户线程是最常见的线程,比如通过main方法启动,就会创建一个用户线程。
Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是 GC (垃圾回收器),它就是一个很称职的守护者。
JVM中的垃圾回收、JIT编译器线程就是最常见的守护线程。
只要有一个用户线程在运行,守护线程就会一直运行。只有所有的用户线程都结束的时候,守护线程才会退出。
编写代码时,也可以通过thread.setDaemon(true)指定线程为守护线程。

Thread daemonTread = new Thread();
 
  // 设定 daemonThread 为 守护线程,默认false
 daemonThread.setDaemon(true);
 
 // 验证当前线程是否为守护线程,返回 true 则为守护线程
 daemonThread.isDaemon();

守护线程的注意事项:

  1. thread.setDaemon(true)要在thread.start()之前设置,否则会抛出IllegalThreadStateException异常。你不能把正在运行的线程设置为守护线程;
  2. 在守护线程中产生的新线程也是守护线程;
  3. 读写操作或者计算逻辑不可以设置为守护线程;
目录
相关文章
|
4月前
|
Java
学习多线程之守护线程
学习多线程之守护线程
32 0
|
6月前
|
Java 开发者
停止线程 & 守护线程 & 线程阻塞
停止线程 & 守护线程 & 线程阻塞
9 0
停止线程 & 守护线程 & 线程阻塞
|
8月前
|
Java
JUC--用户线程和守护线程
java线程分为用户线程和守护线程 一般不做特别说明配置,默认都是用户线程 用户线程:是系统的工作线程,它会完成这个程序需要完成的业务操作。 守护线程:是一种特殊的线程,为其他线程服务的,在后台完成一些系统性的服务,如:垃圾回收线程。
|
Java 调度
线程优先级及守护线程
假如计算机只有一个 CPU,那么 CPU 在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。所以说多线程程序的执行是有随机性,因为谁抢到CPU的使用权是不一定的
95 0
线程优先级及守护线程
用户线程和守护线程
守护线程 守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程 用户线程 是系统的工作线程,它会完成这个程序需要完成的业务操作
【JavaSE】多线程篇(三)用户线程、守护线程与线程的7大状态
文章目录 1 用户线程与守护线程 2 如何将一个线程设置为守护线程? 3 线程的7大状态 3.1 为什么说7大而非6大? 3.3 通过程序查看线程的状态 写在最后
【JavaSE】多线程篇(三)用户线程、守护线程与线程的7大状态
|
监控 Java
多线程详解p15、守护线程
多线程详解p15、守护线程
|
Java 编译器
用户线程与守护线程
用户线程与守护线程
线程 - 守护线程或用户线程(setDaemon)
线程 - 守护线程或用户线程(setDaemon)
76 0
线程 - 守护线程或用户线程(setDaemon)
|
Java
线程 - 守护线程
线程 - 守护线程
102 0