else: print('index:{}, something wrong!'.format(c)) except EOFError as e: print("connection had broken") if stop.is_set(): print('consumer over') end.close() break p, q = Pipe() # p.recv() p = Process(target=producer, args=(p, )) p.daemon = True p.start() q = Process(target=consumer, args=(q, )) q.daemon = True q.start() c = 10 while c: c -= 1 time.sleep(0.2) stop.set() p.join() q.join()