【python】【queue】验证多进程下queue不会丢数据-可靠

为了保证多进程下程序运行的稳定性需要用到queue队列,但需要保证queue必须100%可靠,所以验证一下queue是否绝对稳定;
脚本主要验证有没有漏掉数据;

验证方法:

1、至少2个(脚本30个)进程向queue写入数据
2、一个进程读取数据
确保:读取的数据必须和写入的数据量一致,不一致那么queue就不可靠

# -*- encoding: utf-8 -*-
"""
验证queue在多线程put是没有问题的
queue在多线程时不会丢数据
"""
import sys
import re
import time
from multiprocessing import Process, cpu_count, Queue

put_num = 200000
put_multiprocess = 30
get_num = put_num * put_multiprocess


def test_queue():
    q = Queue()
    puts = []
    for i in range(put_multiprocess):
        puts.append(Process(target=multiprocess_puts, args=(q,)))

    get = Process(target=multiprocess_get, args=(q,))
    get.start()
    for p in puts:
        p.start()

    for p in puts:
        p.join()
    get.join()


def multiprocess_puts(q):
    for i in range(put_num):
        q.put(i)


def multiprocess_get(q):
    # las
    for i in range(get_num):
        q.get()
        print(i)
        if i + 1 // 1000 == 0:
            print(i)


if __name__ == '__main__':
    test_queue()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值