2016-04-28 4 views
1

最近、私はJavaのストリームから生のUTF入力を処理し、現在接続されているすべてのサーバーで結果を返すPythonソケットサーバーを開発し始めましたが、うまくいきました。スレッドごとに2つのスレッドを使用しているので、CPUがすぐに消えてしまうのではないかと心配しています。接続。 (それはJavaで呼ばれるようすなわちFixedThreadPool)スレッドプールの一定量を有する非ブロックIO 非同期ソケットプログラミングのベストソリューション

  • を使用して

    私が持っている:

    私は2つのことのためのアイデアを持っていますどちらが良いか分からないので、あなたのアドバイスやアイデアに感謝します。

    ありがとうございます!

  • +0

    私はAnyEventに行くだろうが、それはPythonではない。 http://search.cpan.org/perldoc?AnyEventを参照してください。 CPU時間が数パーセントの(私の場合はデータと接続の種類によって異なる)500-1000の同時接続を処理します。 – Sebastian

    +0

    3)* bleep *スレッドを使用し、代わりにイベントベースのフレームワークを使用します。 –

    +0

    私は学校の後にそれを見て、感謝! – justblender

    答えて

    2

    自転車を発明したり、非同期/ストリーミング処理にフレームワークを使用しないことをお勧めします。たとえば、Tornadoとなります。

    Go言語の使用を検討することができれば、多くの開発者(は私を含めてを含む)がこの種のタスクをPythonからGoに切り替えることになります。非同期処理をサポートするために設計されています。

    +1

    しばらく私はラングを考えていましたが、今は試してみるべきだと思います。ありがとうございます! :p – justblender

    +1

    **トルネード**に1票。私は長い間それを使用してきました。 **トルネード**は非常に良い性能を持っています。固定ThreadPoolも定義できます(モジュール 'concurrent.futures'から' ThreadPoolExecutor'を使用して)。しかし、あなたは正しいです。 'Go'と' node.js'はこれらのタスクに適しています – qvpham

    関連する問題