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