同期呼処理のpython3プール

#のコード:UTF-8 
インポートOSの
 インポートからマルチプロセッシングインポートプール


デフFUNC(N):
     印刷" %S:%S "(os.getpid()、n))を
     リターン N ** 2 デフ関数func2(n)を:
     印刷" %S:%S "(os.getpid()、n))を
    time.sleep( 1 リターン N ** 2 なら__name__ == ' __main__ ' 
    START_TIME = time.time()




  
    プール =プール(5)  これは、5つのタスクの過程にあった後に5つの工程プロセスプールを作成するには、最初から、 
    res_lst = []
     のために I における範囲(10 :)
        RES = pool.apply(FUNC、引数=(私は、))  このタスクは、解像度を取得したり、ブロッキングがブロックしていない可能性があり、プロセスのタスクfuncを実行を待つ完了するまで同期呼び出し、
                                    #を関係なく、タスクがブロックされているかどうかのが、存在して、同期呼び出しは、所定の位置に待機しています
        res_lst.append(RES)
     を印刷(res_lst)
     印刷" 実行時間、非ブロッキングプロセスプール:"、time.time() - START_TIME)

    S_TIME = time.time()
    POOL2 =プール(5)  プロセスプール決して未来を作成するための5つのプロセスがある5つのタスクの過程にあった 
    res_lst2 =[]
     のために I におけるレンジ(10 ):
        RES = pool2.apply(func2を、引数=(I))  このタスクは、解像度を得るの処理タスクを待つために完了するまで同期呼び出し、またそこにブロックされることがありFUNC2ブロックしないかもしれません
                                    #を関係なくタスクがブロックされているかどうかの存在、同期呼び出しを待っている場所になります
        res_lst2.append(RES)
     を印刷(res_lst2)
     印刷プロセス・プールの実行時間をブロックしている:、time.time() - S_TIME)

0:9156 9156:1 9156:2 9156:3 9156:4 9156:5 9156:6 9156:7 9156:8 9156:9 [0、1、4、9、16、25、36、49、64、81] 実行時間ブロッキング処理プール:0.515625 5816:0 3324:1 3312:2 8228: 3 9976:4 5816:5 3324:6 3312:7 8228:8 9:9976 [0、1、4、9、16、25、36、49、64、81] 障害物実行時間のコースプール:10.421875

 

おすすめ

転載: www.cnblogs.com/lilyxiaoyy/p/10986600.html