Python常用ライブラリ初探査--Queue

1050 ワード

Pythonには、通常の意味でのデータ構造のキューである一般的な内蔵ライブラリがあります.
同じQueueである以上、 に内蔵されているPythonと、listに組み込まれているcollectionsとの違いは何でしょうか.dequeはpythonでよく見られるデータ構造であり、非常に広く使用されているが、厳密な意味でのキューではなく、他の言語list(array)の概念に操作的に近い. collectionsは機能完備の両端から挿入、イジェクト操作をサポートする機能完備の両端キューである.
最後に、本明細書のdequeは、非常に典型的なQueue構造、すなわち厳密な意味でのキューである.それだけでなく、FIFOロックを使用してマルチスレッドの安全な動作を保証するスレッドは安全です.これも、消費者の生産や爬虫類のURLキューの維持に広く使われている理由です.
次に、1つの例を用いて、Mutexを用いて1つの生産消費者を実現する方法を簡単に見る.
import queue
import threading
import time

q=queue.Queue()

def product(arg): 
    while True: 
        q.put(str(arg)+'  ')

def consumer(arg): 
    while True: 
        print(arg,q.get()) 
        time.sleep(2)
        
for i in range(7): 
    t=threading.Thread(target=product,args=(i,)) 
    t.start()
for j in range(24): 
    t=threading.Thread(target=consumer,args=(j,)) 
    t.start()