質問

信頼されるメリカ-サンフランシスコの友人が言うにはPythonの現在のマルチスレッドの実装は、真剣にバギーなどへの使用は避けます。何ができるとこの噂?

役に立ちましたか?

解決

Pythonのスレッドが良い 同時にI/Oグ.スレッドが交換され、CPU等、入力の待機をブロックからファイル、ネットワーク等この他のPythonのスレッドのCPUを待ちます。ることもできるので書きマルチスレッドのwebサーバーやwebクローラーです。

しかし、Pythonのスレッドを直列化される GIL なければならないような場合の通訳ます。この二つのスレッドが延番号のみで実行されます。もとはできませんのマルチコアまたはマルチプロセッサのアーキテクチャ.

あのようにソリューション走行に複数のPythonの通訳者を同時に使用Cベースレッド図書館があります。このほのかなりの心のない場合があります。し、全てのPythonソ将来のリリース。

他のヒント

標準の実装のPython一般に知られているとしてCPythonではC)使用OSのスレッドがあるので、 グローバルロックの通訳, 一つだけのスレッドはPythonコードです。がその限界のスレッド図書館において力強く広く用いられている。

したい場合に利用できるように複数のCPUコアがあります。一つは、複数のpythonの通訳者を同時に述べた。別のオプションをご利用の実施Pythonを使用しないGIL.主に二つのオプション JythonIronPython.

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!

私が知る限りではありませんリアルにバグが、パフォーマンスのスレッドにcPythonは本当に悪い(ほとんどその他のスレッドの実装は、通常十分の場合すべてのスレッドはブロック)により GIL (グローバル通訳のロックなんかは実装固有のものでな言語固有のものです。Jythonは、例えば、なに苦しむことによる利用のJavaのスレッドモデルです。

この ポストな理由で本当に実現でき除去のギルからcPython実施し、 この 一部の実務家や回避策.

い、迅速googleのために "Python吉" ます。

したい場合はコードをpythonでは、大ネジを支援するためにチェックIronPythonはJython.以降は、pythonコードIronPython、Jython行きます。純CLRおよびJava VMにそれぞれに楽しく大ネジ支援を入れます。また、IronPythonを持っていないのでGIL,問題を防止するCPythonスレッドからからなる"ソフトマテリアル-コア-アーキテクチャー.

私は使用で複数のアプリケーションのなかったものと聞いたのねじれ以外のものを100%信頼しています。できな産卵1000のスレッドを同時に期待プログラムをWindowsしかし、簡単に書く労働者のプールでのフィード1000業務のかけは何を管理できている状態です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top