python进程间的通信

mac2022-06-30  18

from multiprocessing import Queue, Process import time, random # 要写入的数据 list1 = ["java", "Python", "JavaScript"] def write(queue): """ 向队列中添加数据 :param queue: :return: """ for value in list1: print(f"正在向队列中添加数据-->{value}") # put_nowait不会等待队列有空闲位置再放入数据,如果数据放入不成功就直接崩溃,比如数据满了。put的话就会一直等待 queue.put_nowait(value) time.sleep(random.random()) def read(queue): while True: # 判断队列是否为空 if not queue.empty(): # get_nowait队列为空,取值的时候不等待,但是取不到值那么直接崩溃了 value = queue.get_nowait() print(f'从队列中取到的数据为-->{value}') time.sleep(random.random()) else: break if __name__ == '__main__': # 父进程创建出队列,通过参数的形式传递给子进程 #queue = Queue(2) queue = Queue() # 创建两个进程 一个写数据 一个读数据 write_data = Process(target=write, args=(queue,)) read_data = Process(target=read, args=(queue,)) # 启动进程 写入数据 write_data.start() # 使用join 等待写数据结束 write_data.join() # 启动进程 读取数据 print('*' * 20) read_data.start() # 使用join 等待读数据结束 read_data.join() print('所有的数据都写入并读取完成。。。')

转载于:https://www.cnblogs.com/c-x-a/p/10951193.html

相关资源:Python进程间通信 multiProcessing Queue队列实现详解
最新回复(0)