进程间的通信----队列queue

 1 import multiprocessing
 2 
 3 
 4 def download_from_web(q):
 5     """下载数据"""
 6     # 模拟下载数据
 7     data = [11,22,33,44]
 8 
 9     # 向队列写入数据
10     for temp in data:
11         q.put(temp)
12 
13     print("数据下载完毕。。。。")
14 
15 
16 def analysis_data(q):
17     """数据处理"""
18     # 建立空列表
19     waitting_analysis_data = list()
20     # 从队列中获取数据
21     while True:
22         data = q.get()
23         waitting_analysis_data.append(data)
24 
25         print(waitting_analysis_data)
26 
27         # q.empty()队列是否为空,q.full()队列是否满了
28         if q.empty():
29             break
30 
31 
32 def main():
33     # 创建队列
34     q = multiprocessing.Queue()
35     # 创建进程
36     p1 = multiprocessing.Process(target=download_from_web,args=(q,))
37     p2 = multiprocessing.Process(target=analysis_data,args=(q,))
38 
39     p1.start()
40     p2.start()
41 
42 
43 
44 if __name__ == '__main__':
45     main()
数据下载完毕。。。。
[11]
[11, 22]
[11, 22, 33]
[11, 22, 33, 44]

  

原文地址:https://www.cnblogs.com/yifengs/p/11389304.html