問題タブ [python-asyncio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
11622 参照

python - Python asyncio、先物、利回り

次のプログラムを考えてみましょう (CPython 3.4.0b1 で実行):

2 つの (関連する) 質問があります。

  1. デコレータが on であってもfast_sqrt、Python は で作成された Future をfast_sqrt完全に最適化するようで、プレーンfloatが返されます。その後run_test()yield from

  2. 例外を発生させる値を取得するために評価future.result()する必要があるのはなぜですか? ドキュメントには、run_test「未来が完了するまでコルーチンを一時停止し、その後、未来の結果を返すか、例外を発生させる」と書かれています。フューチャの結果を手動で取得する必要があるのはなぜですか?yield from <future>

ここに私が得るものがあります:

わかりました、「問題」を見つけました。yield from asyncio.sleepinはslow_sqrt自動的にコルーチンになります。待機は別の方法で行う必要があります。

4 つのバリアントはすべてここにあります。

0 投票する
2 に答える
5022 参照

python - asyncio.Protocol.data_received でコルーチンを呼び出す

asyncio.Protocol.data_received新しい Python asyncioモジュールのコールバックで非同期処理を行う際に問題が発生しています。

次のサーバーを検討してください。

次のクライアントで使用:

self.fast_sqrt呼び出されると、すべてが期待どおりに機能します。

ではself.slow_sqrt、動作しません。

また、self.fast_sqrtおよび の@asyncio.coroutineデコレータでは機能しませんdata_received

ここで根本的な何かが欠けているように感じます。

完全なコードは次のとおりです。

テスト済み:

  • Python 3.4.0b1 (Windows)
  • Python 3.3.3 + asyncio-0.2.1 (FreeBSD)

問題は両方で同じです。 をslow_sqrt使用すると、クライアント/サーバーは何もせずにハングします。

0 投票する
3 に答える
28605 参照

python - asyncio とマルチプロセッシングを組み合わせると、どのような問題が発生しますか?

Python でスレッド化を初めて見たときにほとんどの人が気付いているように、並列処理を実際に行いたい、または少なくともチャンスを与えたいと考えている人々にとって、人生を悲惨なものにする GIL があります。

現在、Reactor パターンのような実装を検討しています。事実上、あるスレッドのような着信ソケット接続をリッスンし、誰かが接続しようとすると、その接続を受け入れて、処理のために別のスレッドのようなものに渡します。

どのような種類の負荷がかかる可能性があるかは (まだ) わかりません。現在、受信メッセージに 2MB の上限が設定されていることは知っています。理論的には、1 秒あたり数千を取得できます (ただし、実際にそのようなものが見られたかどうかはわかりません)。メッセージの処理にかかる時間はさほど重要ではありません、明らかに速いほどよいでしょう。

multiprocessing私は Reactor パターンを調べていて、 (少なくともテストでは) 問題なく動作するように見えるライブラリを使用して小さな例を開発しました。ただし、イベント ループを処理するasyncioライブラリが利用可能になる予定です。

と を組み合わせて私を噛むことができるものはありasyncioますmultiprocessingか?

0 投票する
8 に答える
19157 参照

python - python3 asyncioでシリアルポートを使用する

私は試みていますが、これまでのところ、python asyncio を使用してシリアルポートにアクセスすることに失敗しています。

シンプルな fd で新しい python async フレームワークを使用するためのヒントをいただければ幸いです。

乾杯!

ジェームズ

0 投票する
1 に答える
700 参照

python - asyncio backport trollius のインストール中に gcc エラーが発生する (Python 2.7.5 および Win7)

asyncio backport trollius のインストールに失敗しました。「...最初に _overlapped.pyd 拡張機能をビルドします (これは asyncio ディレクトリに配置されます):」

宣言されていない変数と型名。私はほとんどCを知りません。ここで何が欠けていましたか?