运行Java多线程进程,顶部显示单线程

运行Java多线程进程,顶部显示单线程,java,multithreading,limit,Java,Multithreading,Limit,我希望我问的没错,我们有一个进程,它有10个线程,在一台服务器上,进程在4分钟后完成,这很好,而在另一台服务器上,它需要40分钟,现在在较慢的服务器上,我在运行top时看到以下内容: 任务:总共255个,1个运行,242个睡眠,12个停止,0个僵尸 这基本上是有意义的,因为只有一个线程在工作 用户体验是否有任何配置可能会限制多线程进程的工作?任务转换为进程而不是线程。一个进程将有多个线程。在顶部,您应该看到显示的线程数。我认为Java线程是否直接映射到系统线程取决于系统,因此它们可能不会显示。您

我希望我问的没错,我们有一个进程,它有10个线程,在一台服务器上,进程在4分钟后完成,这很好,而在另一台服务器上,它需要40分钟,现在在较慢的服务器上,我在运行top时看到以下内容: 任务:总共255个,1个运行,242个睡眠,12个停止,0个僵尸

这基本上是有意义的,因为只有一个线程在工作


用户体验是否有任何配置可能会限制多线程进程的工作?

任务转换为进程而不是线程。一个进程将有多个线程。在顶部,您应该看到显示的线程数。

我认为Java线程是否直接映射到系统线程取决于系统,因此它们可能不会显示。您是否使用Java工具(如JVisualVM)进行了检查?检查top命令的默认选项,有很多原因可以解释为什么它可以隐藏您的线程。感谢您的快速回复:我可以在另一台服务器上看到更多线程正在运行,所以我认为它没有被隐藏,是否有任何配置?是否使用top-H?这将显示我相信大多数JVM用于Java线程的所有本机线程。。看看CPU CPU:0.4%us,0.5%sy,0.0%ni,98.8%id,0.2%wa,0.1%hi,0.0%si,0.0%st大多数时间空闲hi-mig,谢谢你的回答,实际上我只看到了单线程,在代码中我们创建了10个线程,在其他服务器上它是并行运行的,我可以看到CPU工作得更努力:CPU:68.6%us,4.8%sy,0.0%ni,21.8%id,0.0%wa,0.2%hi、4.7%si、0.0%st