我有一个代码,它代表汽车刺激,它基本上从文本文件中读取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,无论您生成多少个进程