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()