タグ

concurrent.futuresに関するrin51のブックマーク (3)

  • Pythonでconcurrent.futuresを使った並列タスク実行 - Qiita

    concurrent.futuresモジュールの概要 Python3.2で追加されたconcurrent.futuresモジュールは、複数の処理を並列実行するための機能を提供します。 Pythonには他にthreadingとmultiprocessingというモジュールがありますが、これらが1つのスレッド・プロセスを扱うのに対して、concurrent.futuresモジュールは複数のスレッド・プロセスを扱うことを目的としています。 Executor concurrent.futuresモジュールには抽象クラスとしてExecutorクラスがあり、実装クラスとして2つのクラスが提供されています。 並列タスクを実行するにはこの2つのうちどちらかを使用します。 ThreadPoolExecutor スレッドを使って並列タスクを実行します。 ネットワークアクセスなどCPUに負荷がかからない処理の並

    Pythonでconcurrent.futuresを使った並列タスク実行 - Qiita
  • Pythonのthreadingとmultiprocessingを完全理解 - Qiita

    現代の主なOSと言ったら、Mac OS,UNIX,LinuxWindowsなどがあります。これらのOSは「マルチタスク」機能をサポートしています。 マルチタスクとは?と思うかもしれませんが、例えばブラウザーを立ち上げて、音楽聴きながら、Wordでレポートを書くというシチュエーションでは、少なくとも3つのタスクが同時進行しています。そして、表のタスク以外に、裏ではOS関連の様々なタスクがこっそり動いています。 マルチコアのCPUで、マルチタスクが処理できるのは理解しやすいですが、シングルコアのCPUでもマルチタスクが可能です。OSはそれぞれのタスクを交替に実行しています。例えば、タスク1を0.01秒、タスク2を0.01秒、タスク3を0.01秒、タスク1を0.01秒......繰り返して実行していきます。CPUは速いので、ほぼ同時進行のように感じます。この交替実行のことをしばしば「並行処理(

    Pythonのthreadingとmultiprocessingを完全理解 - Qiita
  • concurrent.futures: 並行処理 in Python

    概要 Global Interpreter Lock (GIL) の制約により、 1つのPythonインタープリタでは同時に1つのスレッドしかコードを実行できない。 したがってCPUバウンドなピュアPythonコードを threading でマルチスレッド化しても速くならない。 subprocess による外部プログラム実行やI/OなどGIL外の処理を待つ場合には有効。 一方 multiprocessing は新しいインタプリタを os.fork() で立ち上げるので、 CPUバウンドなPythonコードもGILに邪魔されず並列処理できる。 ただし通信のため関数や返り値がpicklableでなければならない。 それらの低級ライブラリを使いやすくまとめたのが concurrent.futures (since 3.2) なので、とりあえずこれを使えばよい。 新しい asyncio (sinc

    concurrent.futures: 並行処理 in Python
  • 1