スレッド間通信キュー
異なる通信キューとキューに使用されるプロセスの間でスレッド間通信は、プロセスキューはモジュールマルチプロセッシング中にカプセル化されたモジュールから導入することができ、スレッド間の通信は、インポートキューキュー個々のモジュールを必要とし、モジュールはスレッドありませんパッケージ。
- キュー:
- インポート:インポートキュー
- これは、先入れ先出しで、サービス業で使用することができます
- オブジェクトの例:Q = queue.Queue(NUM)、キューのサイズを制御するためのNUM、どのくらいのデータを配置することができます。
- データへ:q.put(データ)
- データが取ら:q.getを()
- キューの長さが、データを入れていた:q.put_nowait(データ)、これは異常報告されます。queue.Fullを。あなたは、例外処理を追加することができますが、データは、このメソッドを使用した後に失われますので、この方法を使用することは推奨されません。
- 撮影したデータはない:q.get_nowait()、また異常が報告され:queue.Empty、例外処理を設定することができます。
try:
print(q.get_nowait())
except queue.Empty:
# queue.Empty不是内置的错误,而是queue模块中的错误,可以直接使用模块.错误类型来调用
print('队列中没有数据')
- LifoQueue:
- LIFOキューはと呼ばれるが、それは実際にスタックされています
- 我々は、このマルチアルゴリズムの開発のため、サービス部門を使用することはありません
- インポート:キューのインポートLifoQueueから
- 例:LQ = LifoQueue()
- データへ:lq.put(データ)
- データ取ら:lq.get(データ)
- 優先度つきキュー:
- プライオリティキュー
- 開発のVIPメンバーのために使用された手順
- インポート:キューのインポート優先度つきキューから
- 例:PRI =優先度つきキュー()
- データが置か:pri.put((NUM、データ))、タプルをメモを、最初のパラメータは、シーケンス番号であります
- データ採取:pri.get()は、データが取得された優先順位の数、小さい番号、ASCIIコードの順序番号がソートされ先出し数として取得され、順序は通常のデジタル方法ではありません。
from queue import PriorityQueue
pri = PriorityQueue()
pri.put((1, '福娃'))
pri.put((2, '奥运'))
pri.put((0, '五环'))
print(pri.get())
print(pri.get())
print(pri.get())
'''结果是:
(0, '五环')
(1, '福娃')
(2, '奥运')
'''