MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Pythonにおける並列処理プログラミング入門

目次

  • 目次
  • はじめに
  • subprocessによる複数子プロセス処理
  • concurrent.futuresによるマルチプロセス処理
  • Queueによる並行プログラミング
  • 最後に
  • 参考資料
  • MyEnigma Supporters

はじめに

元々Pythonは、

そこまで処理速度が早い言語ではないので、

システムの処理速度を最適化したい場合は、

C++などで書き直した方が良いのかもしれませんが、

Pythonシステムをあと少し早くしたい時には、

並行処理プログラミングをしてみると、

効果があるかもしれません。

 

最近のコンピューターはマルチコアで、

かつハイパースレッディングなどに対応しているため、

複数の処理を同時並行で処理させることで、

処理時間を早くすることはできます。

 

他の言語では、スレッドなどを使って

比較的カンタンに並列処理を実現することができますが、

実はPythonはグローバルインタープリタロック(GIL)という仕組みがあるので、

普通にマルチスレッドのプログラミングをしても、

一つのスレッドづつしか実行されず、

処理が早くならないことが多いようです。

 

そこで、そんなPythonにおいても

上手く並行処理を実施する方法がいくつかあるので、

これらの手法について

簡単にまとめようと思います。

 

詳しいPythonにおける

並行処理のプログラミングについては、

下記の書籍が詳しいため参照下さい。

 

続きを読む