多进程里的queue队列的使用

Queue队列
存在目的:实现线程之间数据共享
1、导入队列模块

from multiprocessing import Queue

2、创建一个队列的最大容量

q= Queue(3)#只能存三个数据模块

3、存数据

q.put(3)#可存入多种数据列表等

4、取数据

q.get()  #获取一个数据,根据先进先出原则

队列的实际使用:
模拟网络下载数据,使用队列

import multiprocessing

def download_data(q):
    '''下载数据'''
    data = [11,22,33,44]
    #将数据存放入队列
    for temp in data:
        q.put(temp)
    print('已将数据下载完毕')

    
def save_data(q):
    save_data = list()
    while True:
        data = q.get()
        save_data.append(data)
        if q.empty():#判断队列是否为空
            break
    print('数据保存完毕%s' % save_data)
def main():
    #创建一个队列,用于进程之间共享数据
    q = multiprocessing.Queue(4)
    #创建两个进程一个下载一个保存
    p_down = multiprocessing.Process(target=download_data, args=(q,))
    p_save = multiprocessing.Process(target=save_data, args=(q,))
    #从网上下载数据
    p_down.start()
    #保存到本地
    p_save.start()

if __name__ == '__main__':
    main()

队列的优点:实现了多进程之间的数据共享

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值