这些用简单的java代码创建的JVM守护线程是什么?

2024-06-18

我有一个非常简单的java应用程序,它只是创建一个对象,调用它的一个函数,所有这些都在一个无限循环中

public class h { 
    public static void main( String[] args) {
        while(true) {
            B b = new B();
            b.print();
        }
    }
}

class B { 
    public void print() {
        System.out.println("Hello I'am class B");
    }
}

打开jvisualvm我看到 JVM 创建了 10 个线程,其中只有一个活动线程(主线程)和 9 个守护进程。

这9个线程有什么用呢?

And is anyone of them related to Garabage collection in any manner ? enter image description here

笔记: 的输出java -version:

java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

操作系统:Arch Linux 4.8.6-1


  • Reference Handler http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/8b04ee324a1a/src/share/classes/java/lang/ref/Reference.java#l120线程负责将垃圾收集器发现的弱引用、软引用和幻像引用添加到其注册中参考队列 http://docs.oracle.com/javase/8/docs/api/java/lang/ref/ReferenceQueue.html.
  • Finalizer http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/8b04ee324a1a/src/share/classes/java/lang/ref/Finalizer.java#l186线程运行finalize准备完成的对象的方法。
  • Signal Dispatcher http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/812ed44725b8/src/share/vm/runtime/os.cpp#l241等待特定操作系统信号并处理它们。特别是,它使线程转储SIGQUIT,并且还启动 VM 关闭过程SIGTERM, SIGINT, SIGHUP.
  • Attach Listener http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/812ed44725b8/src/share/vm/services/attachListener.cpp#l407螺纹支撑动态附加 https://docs.oracle.com/javase/8/docs/jdk/api/attach/spec/机制。它侦听传入的动态连接连接并执行 VM 命令。例如,它被使用jstack, jmap and jcmd公用事业。
  • RMI TCP Accept线程显然接受新的 RMI 连接。
  • RMI TCP Connection线程为已建立的 RMI 连接提供服务。
  • RMI Scheduler运行 RMI 后台任务,例如DGC https://docs.oracle.com/javase/8/docs/api/java/rmi/dgc/DGC.html.
  • JMX server connection timeout线程在需要时终止 JMX 连接。

Reference Handler, Finalizer和部分RMI Scheduler与GC有关。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这些用简单的java代码创建的JVM守护线程是什么? 的相关文章

  • Mongo 可审核的 ZonedDateTime 字段在 Spring Boot 2 中不起作用

    在 Spring Boot 项目中 我使用 CreatedDate 之类的注释来保存有关创建 更新相应文档的日期的信息 整个项目都使用 ZonedDateTime 因此带注释的字段也是 ZonedDateTime 为了实现 Mongo 的日
  • JNA - EnumProcessModules() 未返回所有 DLL?

    我试图从游戏中读取坐标 当我在通过 OpenProcess 接收的 HANDLE 上使用 ReadProcessMemory 以及我在 CheatEngine 中找到的内存时 效果非常好 例如 如果我知道正在运行的进程中的浮点值是0x5AB
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • 帮助我避免 JPA、Hibernate 和 MySQL 的连接超时

    我正在使用 JPA Hibernate 作为提供者 Glassfish 和 MySQL 开发中一切都运行良好 但是当我将应用程序部署到测试服务器并让它运行 大部分空闲 过夜时 我通常会在早上遇到这样的情况 2011 03 09T15 06
  • Java Spark DataFrameReader java.lang.NegativeArraySizeException

    学习 Spark for java 并尝试阅读 csv文件为DataFrame使用DataFrameReader 甚至不能得到一个超级简单的 csv文件工作 因为我不断收到异常java lang NegativeArraySizeExcep
  • 如何为java注释处理器编写自动化单元测试?

    我正在尝试使用 java 注释处理器 我可以使用 JavaCompiler 编写集成测试 事实上我现在正在使用 hickory 我可以运行编译过程并分析输出 问题 即使我的注释处理器中没有任何代码 单个测试也会运行大约半秒 对于以 TDD
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 我需要一个字数统计程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要弄清
  • 强制 Java 最低版本以“java -version:”运行在 Windows 上不起作用

    我想强制应用程序运行的 JVM 最低版本为 1 6 或更高版本 即 1 6 我的理解是 您可以使用 version 命令行参数来执行此操作 我尝试了一下 在Linux下似乎可以正常工作 但在Windows下却不行 LINUX 我在 Linu
  • Java 中的 MP4 容器编写器

    我想找到一个免费的 Java MP4 容器 编写器 我不需要编码器 只需要能够根据预期值写入正确原子的编码器 Bonus对于这样一个库 也可以编写 有效 F4V 我更喜欢纯 Java 解决方案 而不是使用 JNI 或外部可执行文件的解决方案
  • 如何使用 Selenium 中的索引切换到窗口

    由于selenium不提供切换到窗口 多个窗口 的方法 但我想使用index html自定义方法来切换到不同的窗口 但下面的代码没有按预期工作 请建议以下方法的最佳实施 public void switchToWindowIndex int
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • JFrame Glasspane 也优于 JDialog,但不应该

    我有一个带有 Glasspane 的 JFrame 未装饰 该框架打开一个 JDialog 也未装饰 也有一个 glassPane 并隐藏自身 setVisible false Glasspanes 通过 setGlassPane 设置 对
  • 在 REST Web 服务中接受逗号分隔值

    我正在尝试接收 REST URI 中以逗号分隔值形式的字符串列表 示例 http localhost 8080 com vogella jersey first rest todo test 1 abc test 其中 abc 和 test
  • 如何使 JScrollPane 与嵌套 JPanel 一起正常工作?

    我正在使用 NetBeans 在 Java 中构建 Swing 应用程序 但我遇到布局问题 我的主框架包含一个JScrollPane其中包含一个JPanel called contentPanel其中又包含一个JPanel called l
  • 如何列出Resources文件夹中的所有文件(java/scala)

    我正在编写一个函数 需要访问资源中的文件夹 并循环遍历所有文件名 如果这些文件符合条件 则加载这些文件 new File getClass getResource images sprites getPath listFiles 返回空指针
  • 使用正则表达式匹配阿拉伯文文本

    我试图使用正则表达式仅匹配阿拉伯语文本 但出现异常 这是我的代码 txt matches P Arabic 这是例外情况 线程 main 中的异常 java util regex PatternSyntaxException 索引 9 附近
  • 获取Java中ResultSet返回的行数

    我用过一个ResultSet返回一定数量的行 我的代码是这样的 ResultSet res getData if res next System out println No Data Found while res next code t
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • 从 SQLCMD 执行 CREATE VIEW 和 ALTER VIEW

    我正在尝试使用 sql cmd 执行包含以下内容的 sql 文件 sqlcmd S localhost dbInstance i Sample sql v filepath C Sql 示例 sql内容 根据手册 CREATE VIEW 必
  • 如何实现从调用者动态创建对象和类的零参数构造函数基类?

    我有 4 个类 它们都实现了非常相似的代码块 唯一的区别是每个人都需要实例化一个单独的Object and Myclass 在运行时 下面Action类是一个简化版本 实际代码要长得多 通常我会传入参数来根据调用者提供的内容创建对象和类 然
  • 浮点运算的最佳实践

    我正在对精确到小数点后第二位的小数输入执行加法和减法 我试图通过乘以 100 将它们转换为整数来提高准确性 但效果却相反 考虑以下代码和输出 double d 2 01 int a int d 100 0 cout lt lt a lt l
  • GridView 模板列有条件设置为只读

    有没有办法将 GridView 上的模板列从代码隐藏设置为只读 就像如果测试Admin true make readonly false else readonly true 我发现穆罕默德 阿赫塔尔的答案几乎是正确的 只是我需要在我的案例
  • jquery ui 选项卡内的 Openlayers

    我想在 jquery ui 选项卡中使用 Openlayers 但出现错误 大小为空 有同样的问题 解释于jquery 选项卡 http docs jquery com UI Tabs my slider 2C Google Map 2C
  • Swagger/OpenAPI 注释 V3 - 在 swagger 注释中使用 Enum 值

    我正在使用 Swagger OpenApi V3 注释创建应用程序的 API 描述 从以下依赖项导入
  • Spring @RequestParam 和控制器接口

    我对以下行为感到困惑 RequestParam value someValue 在里面docs https docs spring io spring docs current javadoc api org springframework
  • 使用设备函数指针数组

    我需要以下设备版本 主机代码 double func double x double func1 double x return x 1 double func2 double x return x 2 double func3 doubl
  • AngularUI 可排序不适用于多个应用程序

    我创建了带有可排序列表的 angularjs 应用程序 我的应用程序可以与其他不同的应用程序一起多次包含在页面中 每个角度应用程序都是独立的用户控制 var myapp angular module myapp ui myapp contr
  • 用纯JS检查元素是否有背景图片?

    检查特定元素是否具有的正确方法是什么background image与它相关联 在纯Javascript中 现在我有这个 var elementComputedStyle window getComputedStyle element va
  • fetch().then() 返回内容类型和正文[重复]

    这个问题在这里已经有答案了 互联网上的每个 fetch API 示例都展示了如何使用 response json response blob 等仅返回正文 我需要的是调用一个将内容类型和主体都作为 blob 的函数 但我不知道该怎么做 fe
  • 该操作对于事务状态无效

    我有一个TransactionScope 堵塞 它总是卡在插入语句中 它在活动监视器中显示为阻塞任务 因此它阻塞 SQL 服务器 并且在超时后 我收到此错误 该操作对于事务的状态无效 出了什么问题 const TransactionScop
  • GPU 上的张量流:尽管 cuda 的 deviceQuery 返回“PASS”结果,但没有已知设备

    注 这个问题最初是在github上问的 https github com tensorflow tensorflow issues 7648 issuecomment 280866214 但被要求改为在这里 我在 GPU 上运行 Tenso
  • 如何让最后一个字母闪烁?

    我最近创建了这个程序来显示字符串的最后一个字母 使用此代码 include
  • C 中的浮点运算是否具有结合律?

    加法在数学上具有结合律 a b c a b c 在一般情况下 此属性不适用于浮点数 因为它们表示有限精度的值 作为优化的一部分 从 C 程序生成机器代码时 编译器是否允许进行上述替换 C标准中到底在哪里说的 不允许编译器执行 优化 这将导致
  • MSBuild 编译解决方案时找不到 SGen

    我在这里查看了其他几个与 SGen 相关的问题 要么他们的答案不适用 要么他们的答案不能为我解决这个问题 我安装了几个 SDK 来解决这个问题 但没有成功 不应更改引用类型 因为这是唯一出现问题的地方 一次建议是将 SGen exe 放入C
  • 如何改变div的值[重复]

    这个问题在这里已经有答案了 div this is div a div div this is div b div 现在我怎样才能改变文本div通过单击按钮动态地进行 这里还提到所有文本都来自数据库 当我单击按钮时它会检测到divid 并将
  • 在 @font-face CSS 规则中正确定义 font-family

    我最近遇到了 font familyCSS 规则 因为我想在我的网站上使用网络字体 言归正传 我在 font family CSS 代码中看到了两种变体 如下所示 font face font family Droid Serif NOTE
  • 关于在 Objective-C 中迭代 2 个数组的简单问题

    我正在 Objective c 中迭代 NSArray for id object in array1 我现在有另一个 array2 我需要使用当前 array1 的相同索引进行访问 我应该使用另一个 for 语句吗 thanks 您有多种
  • 这些用简单的java代码创建的JVM守护线程是什么?

    我有一个非常简单的java应用程序 它只是创建一个对象 调用它的一个函数 所有这些都在一个无限循环中 public class h public static void main String args while true B b new