zoukankan      html  css  js  c++  java
  • 第四节 多进程中的队列

     1 import multiprocessing
     2 
     3 '''
     4 q = multiprocessing.Queue(3)
     5 q.put(1)
     6 q.put_nowait(0)
     7 q.get()
     8 q.get_nowait()
     9 q.full()
    10 q.empty()
    11 # 放入的元素超过定义的个数,程序会处于阻塞状态,get方法一样。两者都可以通过调用q.get_nowait()让其报错强制退出程序
    12 '''
    13 
    14 def put_data(q):
    15     """写入数据"""
    16     data = [11, 22, 33, 44, 55, 66]
    17     for x in data:
    18         q.put(x)
    19     print('.............数据写入完成............')
    20 
    21 def download_data(q):
    22     """处理数据"""
    23     data = list()
    24     while True:
    25         data.append(q.get())
    26         if q.empty():  # 当数据没取完会处于阻塞状态
    27             break
    28     print(data)
    29     print('数据处理完了')
    30 
    31 def main():
    32     q = multiprocessing.Queue(10)
    33     p2 = multiprocessing.Process(target=download_data, args=(q,))
    34     p1 = multiprocessing.Process(target=put_data, args=(q,))
    35     p1.start()
    36     p2.start()
    37 
    38 
    39 if __name__ == '__main__':
    40     main()
  • 相关阅读:
    Abstract与Virtual
    List 常用方法
    控制数据采样分布 计算概念
    中期答辩感想
    软件开发之团队理解
    详细设计理解
    竞赛系统需求分析
    软件代码规范之理解
    AngularJS 整理资料
    AngularJS合集
  • 原文地址:https://www.cnblogs.com/kogmaw/p/12575457.html
Copyright © 2011-2022 走看看