Python 3パラレルプログラミングのqueueモジュール


文書ディレクトリ
  • インポートモジュール
  • の3種類のキュー
  • queueモジュールの3つのクラス
  • Queueオブジェクトをインスタンス化する方法
  • モジュールのインポート
    import queue
    

    インポートモジュールにサードパーティモジュールはありません
    注意:queueはPythonの標準ライブラリです.このライブラリはPython 2でQueue、Python 3でqueueと呼ばれています.
    3種類のキュー
    Queueモジュールは、データのフェッチの順序だけを区別する3つのタイプのキューを実現します.FIFOキューで、先に追加したデータを先にフェッチします.LIFOキューで、後に追加したデータを取り出します.「≪優先度キュー|Priority Queue|emdw≫」では、入力キュー内のデータの最初の値が抽出されます.この値が数字であっても、アルファベットでも漢字でもunicode符号化値で優先順位がソートされ、値が小さいほど優先度が高くなり、抽出時に優先されます.どのキューでも、値を抽出すると、その値はキューから消去されます.
    Queueモジュールの3つのクラス
    #	  FIFO    。
    queue_object = queue.FifoQueue()
    #	  LIFO    。
    queue_object = queue.LifoQueue()
    #	         。
    queue_object = queue.PriorityQueue()
    

    この3つのクラスには、キューの長さを設定するmaxsizeパラメータが1つしかありません.
    Queueクラスのオブジェクトをインスタンス化する方法
    方法
    説明
    put(item,block=True,'timeout=None)
    blockがTrueの場合、必要に応じてキューが使用可能になるまでブロックが発生します.timeoutが正数であれば、最大でtimeout秒をブロックし、ブロックが終了するとFull異常を引き起こす.blockがFalseの場合、timeoutは無視され、キューが使用できない場合にFull例外が発生します.
    get(item,block=True,timeout=None)
    blockがTrueの場合、必要に応じてキューが使用可能になるまでブロックが発生します.timeoutが正数であれば、最大でtimeout秒をブロックし、ブロックが終了するとEmpty異常を引き起こす.blockがFalseの場合、timeoutは無視され、キューが使用できない場合にEmpty例外が発生します.
    put_nowait(item)
    put(item,False)に相当します.
    get_nowait(item)
    get(item,False)に相当します.
    qsize()
    キューの現在のサイズを返します.qsizeメソッドの戻り値は、オペレーションキューがブロックされるかどうかを保証しません.
    empty
    キューが空の場合はTrueを返します.そうでない場合はFalseを返します.Emptyメソッドの戻り値は、オペレーションキューがブロックされるかどうかを保証しません.
    full()
    キューがいっぱいになったらTrueを返します.そうでなければFalseを返します.fullメソッドの戻り値は、オペレーションキューがブロックされるかどうかを保証しません.
    task_done()
    このメソッドの呼び出しは、キューに対するget操作が完了したことを示します.
    join
    キュー内のすべてのデータが取得するまでブロック状態を維持し、この方法はQueueである.task_done()メソッドの呼び出し回数を根拠に判断する.