java 和 python 之间并行处理的差异



我使用 java.util.concurrent.ForkJoinPool 制作并行处理程序。在继续这个程序时,我检查了tophtop,并注意到top只有一个java进程,但在htop中有很多进程。

我的前辈正在使用python编写并行处理程序,他说奇怪的是top只有一个进程。他还说,top的"CPU使用率"通常超过90%。但我的程序只使用了大约 68%。

我认为原因是Java和python之间如何实现并行处理的差异。但我不知道它是否正确。请告诉我这种差异的正确原因。

谢谢。

你的前辈是否在 python 中实现了多处理或多线程?要查看差异,请查看多处理与线程 Python

我很确定他正在做多处理,这会产生多个进程,这些进程是真正的副本,而不是具有共享内存的线程。top/htop的行为是正确的。top仅显示进程,htop还显示线程。

不同之处在于您使用的是多线程,而您的高级似乎使用多处理也解释了不同的 CPU 使用率。

您可以在htop中按H,这将切换用户线程的视图。现在它应该与顶部的视图几乎相同。

最新更新