queue.Queue() #先入先出
queue.LifoQueue() #后入先出
queue.priorityQueue() #根据优先级进行选取
# 1.
import queue, threading, time
p = queue.Queue() #先入先出
p.put(1)
p.put(2)
p.put(3)
print(p.get(block=False,timeout=1)) #block = False 时,当取不到时不会发生错误, timeout 等待一秒钟内再来取值
print(p.get(block=False,timeout=1))
print(p.get(block=False,timeout=1))
举例:
def p_get():
print(p.get(timeout=1))
def p_put():
time.sleep(0.5)
p.put(4)
p_pt = threading.Thread(target=p_put)
p_pt.start()
p_gt = threading.Thread(target=p_get)
p_gt.start()
这里没有发生报错,因为在0.5秒时,放入一个4, 因此可以取出
# 2.
import queue
p = queue.LifoQueue() #后入先出
p.put(1)
p.put(2)
p.put(3)
p.get()
p.get()
p.get()
# 3.
q = queue.PriorityQueue() #根据优先级进行选取
q.put((1, 'alex'))
q.put((10, 'tom'))
q.put((3, 'ronghua'))
print(q.get())
print(q.get())
print(q.get())