简单的代码理解 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()