佇列的一些方法

2021-09-11 06:17:08 字數 787 閱讀 2945

一些常用方法

task_done()

意味著之前入隊的乙個任務已經完成。由佇列的消費者執行緒呼叫。每乙個get()呼叫得到乙個任務,接下來的task_done()呼叫告訴佇列該任務已經處理完畢。

如果當前乙個join()正在阻塞,它將在佇列中的所有任務都處理完時恢復執行(即每乙個由put()呼叫入隊的任務都有乙個對應的task_done()呼叫)。

join()

阻塞呼叫執行緒,直到佇列中的所有任務被處理掉。

只要有資料被加入佇列,未完成的任務數就會增加。當消費者執行緒呼叫task_done()(意味著有消費者取得任務並完成任務),未完成的任務數就會減少。當未完成的任務數降到0,join()解除阻塞。

put(item[, block[, timeout]])

將item放入佇列中。

如果可選的引數block為true且timeout為空物件(預設的情況,阻塞呼叫,無超時)。

如果timeout是個正整數,阻塞呼叫程序最多timeout秒,如果一直無空空間可用,丟擲full異常(帶超時的阻塞呼叫)。

如果block為false,如果有空閒空間可用將資料放入佇列,否則立即丟擲full異常

其非阻塞版本為put_nowait等同於put(item, false)

get([block[, timeout]])

從佇列中移除並返回乙個資料。block跟timeout引數同put方法

其非阻塞方法為`get_nowait()`相當與get(false)

empty()

如果隊列為空,返回true,反之返回false

stl的一些用法,佇列

第一 佇列 佇列分為佇列和優先佇列 先介紹一下佇列問題 這是佇列的基本操作 push x 將x壓入佇列的末端 pop 彈出佇列的第乙個元素 隊頂元素 注意此函式並不返回任何值 front 返回第乙個元素 隊頂元素 back 返回最後被壓入的元素 隊尾元素 empty 當隊列為空時,返回true si...

佇列queue的一些操作

1.q queue.queue 5 例項化,5為佇列長度 2.q.put haha 將資料加入佇列,計數器 1 3.q.get 取出資料,計數器不變 4.q.join 阻塞,知道計數器為0 5.q.task done 計數器 1 import queue q queue.queue 4 q.put ...

NSArray的一些方法

nsarray 不可變陣列類 建立只有乙個元素的陣列 arraywithobject nsarray建立的陣列內部存放的元素必須是 物件 型別 nsarray array nsarray arraywithobject 1 arraywithobject接收的引數是 物件 型別資料,1 可以看做是乙...