我使用java.util.concurrent.ForkJoinPool制作并行处理程序。在继续执行此程序时,我检查了top和htop,并注意到其中top只有一个Java进程,但htop有许多进程。我的大四学生正在使用python编写并行处理程序,他说奇怪的是其中只有一个进程top。他还说,“ CPU使用率”top通常超过90%。但是我的程序只使用了68%。我以为原因是java和python之间如何实现并行处理的差异。但我不知道这是否正确。请告诉我造成这种差异的正确原因。
1 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
您的上级老师在python中实现了多处理或多线程吗?要了解差异,请查看“多处理与线程Python”
我很确定他正在执行多处理,它产生了多个进程,这些进程是真实副本,而不是具有共享内存的线程。top
/的行为htop
是正确的。top
仅显示进程,同时htop
还显示线程。
不同之处在于您使用的是多线程,而您的上级似乎使用的是多处理,这也解释了不同的CPU使用率。
您可以按H
,htop
其中将切换用户线程的视图。现在,它应该与顶部的视图几乎相同。
添加回答
举报
0/150
提交
取消