python中佇列簡單使用

One of them發表於2018-08-23

使用佇列共享資源

佇列: 先進先出.
queue被做為公共資源(多程式, 多執行緒.), 這種時候py自動幫我們加了鎖(不管鎖的問題).

"""
    執行緒的佇列.
    q = queue.Queue() 建立物件. args: Queue(2)表示給引數可以指定佇列長度,
    q.put('str') 新增物件. args: ('str',timeout=2)表示當佇列慢了阻塞到達2s就報queue.Full錯,
    q.get() 獲取物件. args: timeout=2(表示阻塞2s後就報queue.Empty錯),
    q.task_done() 結束任務, 加在get後面.
    q.join()    確保任務結束, 每當put一次內部就會計數一次, 所以沒get完就阻塞.
    q.qsize()   檢視佇列長度.
    q.empty()   check the queue if is_empty, yes: True, no: False.
    q.ful()     check the queue if is_full, yes:True, no: False.


    put幾個就得get幾個, 不然就會進入阻塞.
    put多於佇列長度也會阻塞.

"""
import queue


q = queue.Queue()   # create Queue obj.
print(q.qsize())    # show the queue length.
q.put('lls')    # input arg.
q.get()
q.task_done()   # Be in after get().
print(q.qsize())
q.join()

多程式使用佇列共享資源

"""
程式佇列.
使用Manager.Queue() 建立queue物件.
"""

相關文章