1
asyncioに基づいて私のライブラリにフェアキューイングを実装しようとしています。いくつかの機能でasyncio.waitオーダーは保証されていますか?
、私は(socketX
が作業していると仮定)のような文があります。
done, pending = asyncio.wait(
[socket1, socket2, socket3],
return_when=asyncio.FIRST_COMPLETED,
)
を今私はasyncio.wait
何回ものマニュアルを読んで、それは私が後だな情報が含まれていません。
socket1
、socket2
とsocket3
は私が呼び出しを発行したとき、すでに準備ができて起こった:主に、私はかどうかを知りたいのですが。done
にすべてが含まれることが保証されているのですか、それとも1つ(または2つ)しか返されないのでしょうか?- 2番目のケースでは、
wait()
に渡されるタスクの順序は関係ありますか?私はまた、順序を気にする必要がある場合、私はちょうど(ものを選ぶと、後で解決のために他のタスクを残すことによって)done
タスクのセットに公正キューイングを適用することができるかどうか断言またはしようとしている
I
ドキュメントはこれについて少し黙っています。何か案が ?
私もそれを試してみたが、Pythonのソースコードをチェックするために私には発生しませんでした。十分な睡眠ではないと思います。あなたの側でそれを試してくれてありがとう。私たちが結論づけることができることは、常にそのように動作するという保証はないが、現在の実装はすべてのプラットフォームでそうであるということである。 – ereOn