私は、スレッドがPythonでどのように動作するかについて頭を落とそうとしていましたが、動作方法に関する良い情報を見つけるのは難しいです。私はちょうどリンクか何かを見逃しているかもしれないが、公式のドキュメンテーションが主題に関して非常に徹底していないようであり、私は良い執筆を見つけることができなかった。スレッドはPythonでどのように機能し、Pythonスレッドの一般的な落とし穴は何ですか?
私が知る限り、スレッドは一度に1つしか実行できません。アクティブなスレッドは10命令ごとに切り替わります。
ここには良い説明がありますか、それとも提供することができますか?また、Pythonでスレッドを使用している間に実行する一般的な問題を認識することは非常にうれしいでしょう。
本当にsmoothspanの引用文にコメントがあります。確かにPythonのスレッディングはマシンに複数のものがあっても1つのコアに制限されますか?コンテキストスイッチなしで次のスレッドを実行できるようになるため、マルチコアの利点があるかもしれませんが、Pythonスレッドは決して> 1コアを使用することはできません。 –
CモジュールがGILとうまくやり取りして、それ自身のネイティブスレッドを実行していない限り、Pythonスレッドは実際には1つのコアに限定されています。 – Arafangion
実際には、複数のコアがスレッドを無駄にすることはありません。なぜなら、各スレッドがGILにアクセスできるかどうかを確認することが多いためです。新しいGILでもパフォーマンスはさらに悪化しています... http://www.dabeaz.com/python/NewGIL.pdf – Basic