次の記事では、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 サイトの他の関連記事を参照してください。