Pythonでスレッドプールを作成する方法は何ですか

Pythonでは、concurrent.futuresモジュールのThreadPoolExecutorクラスを使用してスレッドプールを作成できます。

スレッドプールの作成方法の一般的な例を以下に示します。

import concurrent.futures

def task_function(arg):
    # 执行任务的函数
    print(f"Executing task with argument: {arg}")

# 创建线程池
with concurrent.futures.ThreadPoolExecutor() as executor:
    # 提交任务给线程池
    for i in range(5):
        executor.submit(task_function, i)

上の例では with 文を使用して ThreadPoolExecutor オブジェクトを作成し、スレッドプールのライフサイクルを自動管理します。次に、executor.submit() メソッドを使用してスレッドプールにタスクを送信します。submit() メソッドは呼び出し可能オブジェクト(関数など)とその引数を受け取り、非同期計算の結果を表す Future オブジェクトを返します。タスクはスレッドプール内の空きスレッドに割り当てられて実行されます。

スレッドプールのサイズは指定できます。たとえば:

max_workers = 5
with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor:
    # ...

この例では、スレッドプールのサイズは5に制限されています。具体的な要求や計算リソースによって、さまざまなスレッドプールサイズを設定することができます。

ThreadPoolExecutor クラスは concurrent.futures モジュールが提供するスレッドプールを実装するためのクラスです。Python 3.2以降では ProcessPoolExecutor クラスも提供されており、プロセスプールを作成します。

bannerAds