队列有一个单独的计数器,值为0时代表队列操作完了(不阻塞)。
put一次计数器 +1,get一次计数器不变, task_done()计数器减一
>>> from queque import Queue >>> q = Queue(2) >>> q.join() # 未阻塞 >>> q.put(2) # 计数器+1 >>> q.join() # 阻塞 ... >>> q.task_done() # 计数器-1 >>> q.join() # 为阻塞
队列特点:先进先出
队列长度超过会阻塞,为空也会阻塞
q.empty() q.full() 近似的判断队列是否为空,满
q.qsizae() 近似的 队列的长度
from queue import Queue q = Queue(n) # n为队列长度,队列超过会阻塞 q.put('a') q.put('a1') a = q.get() print(a) >>> a