ホームページ  >  記事  >  バックエンド開発  >  Pythonプロセスプール関数の表示と分析例

Pythonプロセスプール関数の表示と分析例

乌拉乌拉~
乌拉乌拉~オリジナル
2018-08-23 17:41:502112ブラウズ

次の記事では、Python のプロセス プールとは何かについて学びます。 Python プロセス プールと、Python プログラミングにおいてプロセス プールが果たせる役割について学びます。

プロセス プール

Pool クラスは、ワーカー プロセスのプールを記述します。このクラスには、タスクがワーカー プロセスをオフロードするためのさまざまなメソッドがいくつかあります。

プロセス プールは、内部でプロセス シーケンスを維持します。使用されると、プロセス プールに移動してプロセスを取得します。プロセス プール シーケンスに利用可能なプロセスがない場合、プログラムはプロセス プール シーケンスに入るまで待機します。プロセス プール。使用可能なプロセスができるまで。

Pool クラスを使用してプロセス プールを作成し、送信されたタスクをプロセス プールに展開できます。

例を挙げてみましょう:

#apply
from  multiprocessing import Pool
import time

def f1(i):
    time.sleep(0.5)
    print(i)
    return i + 100
if __name__ == "__main__":
    pool = Pool(5)
    for i in range(1,31):
        pool.apply(func=f1,args=(i,))
        
#apply_async
def f1(i):
    time.sleep(0.5)
    print(i)
    return i + 100
def f2(arg):
    print(arg)
    
if __name__ == "__main__":
    pool = Pool(5)
    for i in range(1,31):
        pool.apply_async(func=f1,args=(i,),callback=f2)
    pool.close()
    pool.join()

A プロセス プール オブジェクトは、ワーカー プロセス プール内のどの作業を送信できるかを制御できます。タイムアウトとコールバックの非同期結果をサポートし、マップのようなオブジェクトを持ちます。実装。 。

processes: 使用されているワーカー プロセスの数プロセスが None の場合は、os.cpu_count() によって返された数を使用します。

initializer:Initializer が None の場合、各ワーカー プロセスは最初にInitializer(*initargs) を呼び出します。

maxtasksperchild: ワーカー プロセスが終了する前に完了できるタスクの数。完了後、新しいワーカー プロセスが元のプロセスを置き換えて、アイドル状態のリソースを解放します。 maxtasksperchild のデフォルトは None です。これは、プールが存在する限りワーカー プロセスが存続することを意味します。

context: ワーカー プロセスの開始時にコンテキストを指定するために使用されます。一般に、プールを作成するには、コンテキスト オブジェクトの multiprocessing.Pool() または Pool() メソッドが使用されます。どちらのメソッドもコンテキストを適切に設定します

注: Pool オブジェクトのメソッドは、プールを作成したプロセスによってのみ呼び出すことができます。

以上がこの記事の内容です、この記事では主にpythonプロセスプールの関連知識を紹介しますので、上記の内容を理解するために活用していただければ幸いです。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。

関連知識の詳細については、php 中国語 Web サイトの Python チュートリアル 列を参照してください。

以上がPythonプロセスプール関数の表示と分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。