隊列簡單使用:python
import queue def a(): print("this is fun a") class B(): def p(self): print("this is class B") # 先進先出 q1 = queue.Queue() b = B() q1.put(1) q1.put(a) q1.put(b) d = q1.get() print(d) d = q1.get() d() d = q1.get() d.p() del q1 """運行結果 1 this is fun a this is class B """ # q.empty()判斷q是否爲空。 # q.full(0判斷q是否爲滿 # 設置queue的大小 q1 = queue.Queue(maxsize=3) try: q1.get(timeout=1) # 當q爲空時,超過1秒仍是空時會報異常:queue.Empty except Exception as e: print(e) try: q1.get_nowait() # 當q爲空時,會報異常:queue.Empty except Exception: pass q1.put("xxx") # 當q滿時會阻塞 q1.put("xxx") # 當q滿時會阻塞 q1.put("xxx") # 當q滿時會阻塞 try: q1.put_nowait("xxx") # 當q滿時會報異常:queue.Full except Exception: pass try: q1.put(b,timeout=2) # 超過2秒q仍是滿時會報異常:queue.Full except Exception as e: print(e) print(q1.get()) #當q爲空時會阻塞 del q1 # 先進後出隊列 q1 = queue.LifoQueue(maxsize=5) del q1 # 優先級隊列 q1 = queue.PriorityQueue(maxsize=5) # 數字曉得優先級高 q1.put((1,"yes")) q1.put((5,"no")) q1.put((3,"yes")) print(q1.get()) print(q1.get()) print(q1.get()) """運行結果 (1, 'yes') (3, 'yes') (5, 'no') """