繁体   English   中英

当我运行单线程Java程序时,为什么操作系统级别有多个线程?

[英]When I run a single-threaded Java program why are there are multiple threads at the OS level?

我运行一个非常简单的单线程java程序。 当我在Ubuntu下使用命令检查线程时

ps -eLf

它显示OS级别有14个线程。 我希望程序有一个线程时只有一个线程,如果程序有x个线程,则只有x个线程。 我的期望是错的吗?

JVM有自己的线程,例如垃圾收集器。 尝试在它上面执行kill -3 <pid> ,它会显示所有线程。

JVM有多个线程在运行。 这就是你看到这么多线程的原因。

我相信Java虚拟机在启动时总会打开多个操作系统线程,这就是为什么你看到你所看到的。 另外,我不确定Java Thread类是否使用本机线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM