JavaJAR在ubuntu上创建多个进程,但在mac上不创建

JavaJAR在ubuntu上创建多个进程,但在mac上不创建,java,multithreading,process,Java,Multithreading,Process,我创建了我的第一个“真正的”java程序,并首次在生产服务器上运行它。我注意到在ubuntu上运行jar(java-jar foo.jar)会产生大约13个进程,而在我的mac上运行它只会产生一个进程(这在我看来是意料之中的,因为我在应用程序中只产生一个线程) 什么可以解释这种差异呢?因为,我相信您看到的不是多个进程,而是线程。默认情况下,Linux'top显示各个线程及其用法 htop工具(apt get install htop)能够隐藏这些“用户线程”,并将资源使用情况分组回每个进程的单个

我创建了我的第一个“真正的”java程序,并首次在生产服务器上运行它。我注意到在ubuntu上运行jar(
java-jar foo.jar
)会产生大约13个进程,而在我的mac上运行它只会产生一个进程(这在我看来是意料之中的,因为我在应用程序中只产生一个线程)

什么可以解释这种差异呢?

因为,我相信您看到的不是多个进程,而是线程。默认情况下,Linux'
top
显示各个线程及其用法

htop
工具(
apt get install htop
)能够隐藏这些“用户线程”,并将资源使用情况分组回每个进程的单个条目中

> htop
> F2 to open options
> Display options
> Hide userland threads (space to toggle)
> F10, Esc or q to return to display

您确定这些是进程(不是线程)吗?旧Linux版本中有一个bug,它将Java线程显示为独立的进程。也许是这样?@Thilo“userlandthreads”。如果您安装了
htop
,您可以将其配置为不显示它们。@mbs事实上,当我在htop中关闭userland线程的显示时,这些“进程”就会消失。我能得出结论,这里没有什么可担心的吗?是的,这只是OSs报告状态的不同的结果。好的,谢谢。如果你愿意,你可以回答这个问题,这样我就可以接受答案