# 队列为了协调线程 # task_done() 给正在等待的 join() 发信号 # 没有task_done() 的信号 join() 会一直等待 import queue,threading,time que = queue.Queue() def Soo(name): count = 0 while count < 5: print('%s start baozi'%name + "##########") que.put(count) que.task_done() time.sleep(3) count += 1 def Coo(name): count = 0 while count<5: # time.sleep(3) que.join() data = que.get() print('%s eat baozi %s 号'%(name,data) + '---------') count += 1 t1 = threading.Thread(target=Soo,args=('A',)) t2 = threading.Thread(target=Coo,args=("B",)) t1.start() t2.start()
A start baozi########## B eat baozi 0 号--------- A start baozi########## B eat baozi 1 号--------- A start baozi########## B eat baozi 2 号--------- A start baozi########## B eat baozi 3 号--------- A start baozi########## B eat baozi 4 号---------
+——————————————————————————
print(que.full()) # 判断队列是否满 print(que.empty()) # 判断队列是否为空 为空返回TRUE 反之返回Fuse print(que.qsize()) # 判断队列里面有几个数据