Python_エラー:
内行XXXは、参加
(CLOSE、TERMINATE)でself._stateを主張し
てAssertionError
出典:
#1 。エンコード= UTF 8 インポート時 からマルチプロセッシングインポートプール DEF RUN(Fnが): #Fnが:関数の引数リストは、データ要素がある time.sleep(1。 ) を返すのFn * のFn IF __name__ == " __main__ " : testFL [=を1,2,3,4,5,6 ] 印刷(' 単一処理実行順序:')#の実行順序(すなわちシリアル実行、シングル処理) Sは、= time.time() のためのFn に:testFL (FNを実行します) E1を= time.time() 印刷(U " 実行順序の時間:"、INT(E1- S)) を印刷(' 同時:')#は、複数のプロセスが並列に実行される作成 プールプール=(5) #プロセスは5を持って作成します。プロセスプールの数 #testFL:処理するデータのリストを、実行します。testFLリスト処理関数データ RLは= pool.map(RUN、testFL) #1 pool.close() #はプロセスプールを閉じ、もはや、新しいタスクを受け入れますそれ以外の場合はエラーになり、近い()の前に参加を追加する必要があります ()pool.joinを#子プロセスを待っている主な処理ブロックが終了し 、E2 = time.time() 印刷(U 「並列実行時間:」、INT(E2 - E1)) 印刷(RL)
理由:プールを操作する過程で(時間)に参加。に)(pool.closeを付加する必要があります
#1 。エンコード= UTF 8 インポート時 からマルチプロセッシングインポートプール DEF RUN(Fnが): #Fnが:関数の引数リストは、データ要素がある time.sleep(1。 ) を返すのFn * のFn IF __name__ == " __main__ " : testFL [=を1,2,3,4,5,6 ] 印刷(' 単一処理実行順序:')#の実行順序(すなわちシリアル実行、シングル処理) Sは、= time.time() のためのFn に:testFL (FNを実行します) E1を= time.time() 印刷(U " 実行順序の時間:"、INT(E1- S)) を印刷(' 同時:')#は、複数のプロセスが並列に実行される作成 プールプール=(5) #プロセスは5を持って作成します。プロセスプールの数 #testFL:処理するデータのリストを、実行します。関数データがtestFLリスト処理 RLを= pool.map(RUN、testFL) pool.close() #はプロセスプールを閉じ、もはや、新しいタスクを受け入れない参加それはそれ以外の場合はエラーになり、近い()の前に追加する必要があり pool.joinを() #メイン処理ブロック子プロセスを待って終了し 、E2 = time.time() 印刷(U 「並列実行時間:」、INT(E2 - E1)) 印刷(RL)
結果:
D:\ Python36 \ python.exe D:/ Python36 / test_mysql / test_0810_01.py 単一のプロセス実行シーケンス: 実行時間シーケンス: 6 並行: 並列実行時間: 2 [ 1 ,. 4 ,. 9、16、25、36。] プロセス仕上がり終了コード0で