【发布时间】:2018-06-26 08:55:13
【问题描述】:
我使用 java.util.concurrent.ForkJoinPool 制作并行处理程序。在执行这个程序时,我检查了top 和htop,发现top 中只有一个java 进程,而htop 中有很多进程。
我的学长正在用python写并行处理程序,他说top中只有一个进程很奇怪。他还说top 中的“CPU 使用率”通常超过 90%。但是我的程序只使用了大约 68%。
我认为原因是java和python之间如何实现并行处理的差异。但我不知道它是否正确。请告诉我造成这种差异的正确原因。
谢谢。
【问题讨论】:
-
也许只是因为你没有在你的代码中做同样的事情。但我们不能说,因为我们看不到它......
-
top默认不显示线程,而htop显示。你可以使用top -H看看会发生什么。可能是 Python 程序使用进程而不是线程。我将使用线程与使用进程之间的区别留给您的研究工作。 -
我认为我们需要查看您的代码。在 Java 中编写并行代码的方式有很多不正确,这将导致没有有效的并行性。
-
>先生。 vincrichaud 和斯蒂芬先生感谢您的回复。我在我的问题中添加了源代码链接。
-
>先生。 RealSkeptic 感谢您的回复。我检查了
top -H并且有很多线程。我将通过使用进程或线程来研究并行处理。
标签: java python parallel-processing forkjoinpool