初学者多处理p.join可以节省CPU?

时间:2018-12-26 15:08:18

标签: python

就我的以下代码而言,process.join()是否杀死了开始进行多处理的根本原因?因为我只对一个函数使用多重处理,但是我认为这比使用多线程会更好(以毫秒为单位)。

假定我的扫描功能主要受I / O约束,但有时确实需要多达50ms的时间来解析,因此我认为多处理可能会进一步减少这种情况。

如果我不使用process.join(),程序将超级快速地循环,结果导致CPU使用率上升很多,因此我想知道process.join()是否会对您有所帮助? (已经阅读了文档,但还不确定)

我为“多处理的持续时间”计时,但是它更像是在多处理部分之外的持续时间,因为它可以测量启动我想启动的新进程(即加载我设置的所有其他模块)的开销

原因如下:我以某种方式为scanfunction创建了一个“子进程”,而主脚本的其他部分将使用常规的“ main”进程?因此,希望总共有2个CPU使用情况。

import multiprocesssing
initial_time = time.time()

#OTHER CODE HERE

if __name__ == "__main__":

    while True:
        print("Duration for multiprocessing: %s" %str(time.time()-initial_time))

        #START SCAN PROCESS IF IT DOESN'T EXIST
        for process in multiprocessing.active_children():
            if "SCAN" in str(process):
                break
        else:
            process = multiprocessing.Process(target=scanfunction, name="SCAN")
            process.start()
            process.join()
        initial_time = time.time()

        #OTHER CODE HERE

0 个答案:

没有答案