1. 程式人生 > >python中多執行緒的共享資料,通過queue來實現,內有生產者消費者經典模型的示例程式碼

python中多執行緒的共享資料,通過queue來實現,內有生產者消費者經典模型的示例程式碼

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