在多处理后调用普通函数



我有一个代码,它代表汽车刺激,它基本上从文本文件中读取GPS点并确定汽车的速度。

使用多处理同时读取多个文本文件

我想在多处理准备好调用检测到流量的列表后立即调用一个函数。

目前,它在多处理之前调用该函数并调用它 5 次(多进程的数量(,尽管这些没有链接。

   def stimulation():
if __name__ == '__main__':
    p1 = Process(target=getGPSPointsFromFile, args=('gpstest-notraffic',))
    p1.start()
    #p1.join()
    p3 = Process(target=getGPSPointsFromFile, args=('gpstest-traffic-aldomoro2',))
    p3.start()
    #p3.join()
    p4 = Process(target=getGPSPointsFromFile, args=('gpstest-traffic-kappara1',))
    p4.start()
    #p4.join()
    p5 = Process(target=getGPSPointsFromFile, args=('gpstest-traffic-kappara2',))
    p5.start()

stimulation()
getStreetName()

我想要的只是在刺激后调用getStreetName((方法

你开始的每个进程都会读取整个python文件并执行,所以你的每个进程都会调用这些函数。
if __name__ == '__main__':确保以下块仅由主进程
执行您需要等待每个进程完成(通过调用join()(,然后调用您的函数

if __name__ == '__main__':
    p1 = Process(target=getGPSPointsFromFile, args=('gpstest-notraffic',))
    p1.start()
    p3 = Process(target=getGPSPointsFromFile, args=('gpstest-traffic-aldomoro2',))
    p3.start()
    p4 = Process(target=getGPSPointsFromFile, args=('gpstest-traffic-kappara1',))
    p4.start()
    p5 = Process(target=getGPSPointsFromFile, args=('gpstest-traffic-kappara2',))
    p5.start() 
    p1.join()
    p3.join()
    p4.join()
    p5.join()
    stimulation()
    getStreetName()

此外,您可能希望将进程收集在一个列表中,然后您可以迭代它们并调用每个进程的 join,无论您生成多少个进程

相关内容

  • 没有找到相关文章

最新更新