5

Python 2.7 docs によると、信頼できるものではなくQueue.qsize、信頼できないとhelp(Queue.Queue.qsize)言われています。私が認識していない特定の実装上の問題はありますか?

PSQueue.Queue.qsizeミューテックスを使用していることは承知しておりQueue、メソッドを呼び出して結果を取得するまでの間にサイズが変わる可能性がありますが、シングルスレッドアプリケーションの場合はQueue安全ですか?

からのメッセージhelp(Queue.Queue.qsize):

>>> ヘルプ(Queue.Queue.qsize)
モジュール Queue のメソッド qsize に関するヘルプ:

qsize(self) バインドされていない Queue.Queue メソッド
    キューのおおよそのサイズを返します (信頼できません!)。

>>>
4

1 に答える 1

10

Queue.Queue.qsizeシングル スレッド アプリケーション (およびその目的の多くのアプリケーションのマルチ スレッド アプリケーションでさえ) で正常に動作します。putまたはへの呼び出しgetがブロックされるかどうかを確実に判断するために使用することはできません。

同時実行が必要ない場合は、collections.dequeよりも高速であることに注意してくださいQueue.Queue。または、パフォーマンスが重要でない場合は、単純な方法で通常のリストを使用することもできます。

于 2013-01-14T05:55:28.210 に答える