python 生產者和消費者模式
阿新 • • 發佈:2018-12-17
簡單的程式碼理解 python中 生產者和消費者模式
#encoding: utf-8
from Queue import Queue
import time
import threading
#生產者消費者模式是執行緒間通訊的一種應用
#在使用資料結構的時候確定是否是執行緒安全,Queue本身是執行緒安全的
#list([]) Dict({}) 都不是執行緒安全的
def set_value(q):
index = 0
while True:
q.put(index)
index += 1
q.put(index)
index += 1
time.sleep(2)
def get_value(q):
while True:
print("消費者獲取資料",q.get()) #如果佇列為空,get()方法會sleep,直到佇列有資料
def main():
q = Queue(8)
t1 = threading.Thread(target=set_value,args=[q])
t2 = threading.Thread(target=get_value,args=[q])
t1.start()
t2.start()
if __name__ == '__main__':
main()