ホームページ >バックエンド開発 >Python チュートリアル >Python でマルチスレッドを効果的に使用して並列タスクを実行するにはどうすればよいですか?

Python でマルチスレッドを効果的に使用して並列タスクを実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 02:10:10401ブラウズ

How Can I Effectively Use Multithreading in Python for Parallel Task Execution?

Python のマルチスレッド

Python では、マルチスレッドを利用してタスクを複数のスレッドに分割できます。簡略化した例を次に示します。

Python 3.3 :

from multiprocessing.dummy import Pool as ThreadPool

my_array = [1, 2, 3]

pool = ThreadPool(4)
results = pool.map(my_function, my_array)

以前の Python バージョン:

複数の引数を渡すには、考慮するthis:

my_function = lambda x, y: x * y
list_a = [1, 2, 3]
list_b = [4, 5, 6]

pool = ThreadPool(4)
results = pool.starmap(my_function, zip(list_a, list_b))

説明:

  • マップは、シーケンス内の各要素に別の関数を適用し、結果をlist.

実装:

  • Multiprocessing.dummy は、マップ関数の並列バージョンを提供します。
  • 代わりにスレッドを使用します。プロセスの数が多いため、I/O 集中型のタスクに適しています。
  • Pool クラスはマップ関数を並行して実行するワーカー スレッドのセット。

例:

  • 提供されたコードは、4 つのスレッドを持つプールを作成します。
  • map 関数を使用して、URL のリストに単純な関数を適用します。
  • 結果すべてのスレッドがタスクを完了すると、リストで返されます。

追加メモ:

  • CPU を集中的に使用するタスクの場合は、複数の使用を検討してください。
  • map 内の関数に複数の引数を渡すには、Python バージョン 3.3 以降が必要です。以前のバージョンの場合は、回答に記載されている回避策を使用してください。

以上がPython でマルチスレッドを効果的に使用して並列タスクを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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