2017-05-24 2 views
0

私は基本的にテキストファイルから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() 

私が欲しいのは、刺激

+0

もし 'if __name__ == '__main __':' insideシミュレーションメソッド? – Pavan

+0

はい刺激方法に設定されています – Rach

答えて

0

は、あなたが開始する各プロセスは、全体のpythonファイルを読み込んで実行しているので、各お使いのプロセスがこれらの機能を呼び出した後に呼び出されるgetStreetName()メソッドのためです。
この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を呼び出すことができます

+0

ありがとうございました – Rach

関連する問題