質問
信頼されるメリカ-サンフランシスコの友人が言うにはPythonの現在のマルチスレッドの実装は、真剣にバギーなどへの使用は避けます。何ができるとこの噂?
解決
Pythonのスレッドが良い 同時にI/Oグ.スレッドが交換され、CPU等、入力の待機をブロックからファイル、ネットワーク等この他のPythonのスレッドのCPUを待ちます。ることもできるので書きマルチスレッドのwebサーバーやwebクローラーです。
しかし、Pythonのスレッドを直列化される GIL なければならないような場合の通訳ます。この二つのスレッドが延番号のみで実行されます。もとはできませんのマルチコアまたはマルチプロセッサのアーキテクチャ.
あのようにソリューション走行に複数のPythonの通訳者を同時に使用Cベースレッド図書館があります。このほのかなりの心のない場合があります。し、全てのPythonソ将来のリリース。
他のヒント
標準の実装のPython一般に知られているとしてCPythonではC)使用OSのスレッドがあるので、 グローバルロックの通訳, 一つだけのスレッドはPythonコードです。がその限界のスレッド図書館において力強く広く用いられている。
したい場合に利用できるように複数のCPUコアがあります。一つは、複数のpythonの通訳者を同時に述べた。別のオプションをご利用の実施Pythonを使用しないGIL.主に二つのオプション Jython や IronPython.
JythonはJavaで記述された、かなり成熟したも互換性が残ります。例えば、ウェブフレームワーク Django不完全な, が近づいています。Jythonは 大のためのスレッドの安全性,出 良いベンチマーク として cheekyメッセージをしたい人にはGIL.
IronPython使用。NETフレームワークでクライアントまで、フルのC#.互換性のステージ DjangoでIronPython (少なくともデモ版ソフトウェアとオンラインがあり ガイドをスレッドIronPython.
のGIL(グローバルの通訳をロックすることとなる問題が、APIもOKです。試しに processing
モジュールを実装するスレッドAPIのための別のプロセス。を使用している今もOS X、まだいくつかの試験Windowsでは、本当に感動します。キューのクラスは省私のベーコンの管理が複雑!
編集:でseemesの処理モジュールが含まれているの標準ライブラリのバージョン2.6(import multiprocessing
).Joy!
したい場合はコードをpythonでは、大ネジを支援するためにチェックIronPythonはJython.以降は、pythonコードIronPython、Jython行きます。純CLRおよびJava VMにそれぞれに楽しく大ネジ支援を入れます。また、IronPythonを持っていないのでGIL,問題を防止するCPythonスレッドからからなる"ソフトマテリアル-コア-アーキテクチャー.
私は使用で複数のアプリケーションのなかったものと聞いたのねじれ以外のものを100%信頼しています。できな産卵1000のスレッドを同時に期待プログラムをWindowsしかし、簡単に書く労働者のプールでのフィード1000業務のかけは何を管理できている状態です。