python中多執行緒的共享資料,通過queue來實現,內有生產者消費者經典模型的示例程式碼
阿新 • • 發佈:2019-01-03
queue:佇列,即先進先出,它有以下幾個方法:
1.判斷佇列的大小:size()
2.向佇列中新增:put()
3.向佇列中取出:get()
4.如果佇列規定了長度,用來判斷是否滿了:full()
import threading,time import queue q = queue.Queue(maxsize=10)#在裡面設定佇列的大小 def Producer(): count = 1 while True: q.put("麵包%s"%count) print("生產了麵包%s\n"%count) count +=1 time.sleep(1) def Consumer(name): while True: print("{0}吃了{1}\n".format(name,q.get())) time.sleep(5) p = threading.Thread(target=Producer,) c = threading.Thread(target=Consumer,args=('11111',)) c1 = threading.Thread(target=Consumer,args=('22222',)) p.start() c.start() c1.start()
結果:
生產了麵包1
11111吃了麵包1
生產了麵包2
22222吃了麵包2
生產了麵包3
生產了麵包4
生產了麵包5
生產了麵包6
11111吃了麵包3
22222吃了麵包4
生產了麵包7
生產了麵包8
生產了麵包9
生產了麵包10
生產了麵包11
11111吃了麵包5
22222吃了麵包6
生產了麵包12
生產了麵包13
生產了麵包14
生產了麵包15
11111吃了麵包7
生產了麵包16
22222吃了麵包8
生產了麵包17
生產了麵包18
11111吃了麵包9
生產了麵包19
22222吃了麵包10
生產了麵包20