zoukankan      html  css  js  c++  java
  • 进程间的通信----队列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]
    

      

  • 相关阅读:
    [手游新项目历程]-36- error: stray ‘357’ in program
    广告学(一)
    VMware的Unity模式
    poj3709
    poj1849
    bzoj2007
    bzoj3209
    bzoj2466,poj1222
    bzoj1016
    bzoj2186
  • 原文地址:https://www.cnblogs.com/yifengs/p/11389304.html
Copyright © 2011-2022 走看看