Python_报错:ラインXXX、中には(CLOSE、TERMINATE)AssertionErrorがでself._stateを主張参加します

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で

 

おすすめ

転載: www.cnblogs.com/rychh/p/11332294.html