ToB企服应用市场:ToB评测及商务社交产业平台

标题: jvm_threads_live_threads 和 jvm_threads_states_threads 这两个指标之间 [打印本页]

作者: 天空闲话    时间: 2025-1-23 03:49
标题: jvm_threads_live_threads 和 jvm_threads_states_threads 这两个指标之间
jvm_threads_live_threads 和 jvm_threads_states_threads 这两个指标之间存在肯定的关系,但它们关注的维度不同。以下是它们的详细关系和区别:

1. jvm_threads_live_threads



2. jvm_threads_states_threads



3. 两者之间的关系

jvm_threads_live_threads 和 jvm_threads_states_threads 之间的关系可以通过以下公式体现:
复制
  1. jvm_threads_live_threads{state="live"} =
  2.     jvm_threads_states_threads{state="new"} +
  3.     jvm_threads_states_threads{state="runnable"} +
  4.     jvm_threads_states_threads{state="blocked"} +
  5.     jvm_threads_states_threads{state="waiting"} +
  6.     jvm_threads_states_threads{state="timed-waiting"}
复制代码
换句话说,jvm_threads_live_threads 是 jvm_threads_states_threads 中全部状态线程数的总和。


1. 指标界说

1.1 jvm_threads_live_threads


1.2 jvm_threads_states_threads



2. 指标之间的关系

2.1 jvm_threads_live_threads 中的 live


2.2 jvm_threads_live_threads 中的 daemon 和 peak



3. 总结



保卫线程(Daemon Thread) 是 Java 中的一种特别线程,它的生命周期依赖于非保卫线程(即用户线程)。以下是保卫线程的详细表明:

1. 保卫线程的界说



2. 保卫线程的特点

2.1 生命周期


2.2 优先级


2.3 应用场景



3. 保卫线程 vs 用户线程

特性保卫线程用户线程生命周期依赖于用户线程,用户线程竣事时主动退出独立运行,不会因为其他线程竣事而退出优先级通常较低可以设置优先级应用场景后台任务(如 GC、监控、日记)主步伐逻辑默认类型新创建的线程默认是用户线程需要显式设置为保卫线程
4. 怎样创建保卫线程

在 Java 中,可以通过 setDaemon(true) 将一个线程设置为保卫线程。
4.1 示例代码

java
复制
  1. public class DaemonThreadExample {
  2.     public static void main(String[] args) {
  3.         Thread daemonThread = new Thread(() -> {
  4.             while (true) {
  5.                 System.out.println("Daemon thread is running...");
  6.                 try {
  7.                     Thread.sleep(1000);
  8.                 } catch (InterruptedException e) {
  9.                     e.printStackTrace();
  10.                 }
  11.             }
  12.         });
  13.         // 设置为守护线程
  14.         daemonThread.setDaemon(true);
  15.         // 启动线程
  16.         daemonThread.start();
  17.         // 主线程休眠 3 秒后结束
  18.         try {
  19.             Thread.sleep(3000);
  20.         } catch (InterruptedException e) {
  21.             e.printStackTrace();
  22.         }
  23.         System.out.println("Main thread finished.");
  24.     }
  25. }
复制代码
4.2 运行结果

复制
  1. Daemon thread is running...
  2. Daemon thread is running...
  3. Daemon thread is running...
  4. Main thread finished.
复制代码


5. 保卫线程的注意事项

5.1 资源清理


5.2 线程优先级


5.3 线程池中的保卫线程



6. 实际应用场景

6.1 垃圾回收(GC)


6.2 监控任务


6.3 日记记载



7. 总结


如果有其他问题,请随时告诉我!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4