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()