美文网首页linux运维
python爬虫-25-python多线程安全队列Queue详解

python爬虫-25-python多线程安全队列Queue详解

作者: 运维家 | 来源:发表于2022-06-15 10:07 被阅读0次

    1、python之Queue介绍

    Python中的queue模块中提供了同步的、线程安全的队列类,包括FIFO(先进先出)队列Queue,LIFO(后入先出)队列LifoQueue。这些队列都实现了锁原语(可以理解为原子操作,即要么不做,要么都做完),能够在多线程中直接使用。

    2、python之Queue方法

    1. 初始化Queue(maxsize):创建一个先进先出的队列;
    2. 初始化LifoQueue(maxsize):创建一个先进后出的队列;
    3. qsize():返回队列的大小;
    4. empty():判断队列是否为空;
    5. full():判断队列是否满了;
    6. get():从队列中取最后一个数据;
    7. put():将一个数据放到队列中。

    3、python之Queue实操

    3.1 创建一个先进先出的队列

    import queue
    import random

    q = queue.Queue(maxsize=5)  # 创建先进先出队列,并指定只能存5个数据

    while True:
        if q.full():  # 判断队列是否满了
            print("队列满了呀,放不进来数据咯")
            break
        else:
            Jier = random.random()  # 生成一个随机数
            print("往队列q中存入了数据:{}".format(Jier))
            q.put(Jier)  # 存放数据

    print("队列q的数据存储了{}个".format(q.qsize()))
    while True:
        if q.empty():  # 判断队列是否空了
            print("队列q空了呀")
            break
        else:
            print("从队列q中取出了数据:{}".format(q.get()))  # 取出数据

    运行结果如下:

    往队列q中存入了数据:0.16770815255552796
    往队列q中存入了数据:0.6629318061550314
    往队列q中存入了数据:0.1541872174654343
    往队列q中存入了数据:0.6109450539369857
    往队列q中存入了数据:0.23136112820862198
    队列满了呀,放不进来数据咯
    队列q的数据存储了5个
    从队列q中取出了数据:0.16770815255552796
    从队列q中取出了数据:0.6629318061550314
    从队列q中取出了数据:0.1541872174654343
    从队列q中取出了数据:0.6109450539369857
    从队列q中取出了数据:0.23136112820862198
    队列q空了呀

    从上面可以看到,数据确实是先存进队列的,先被取出来消耗掉了。

    3.2 创建一个先进后出的队列

    剩余内容请转至VX公众号 “运维家” ,回复 “186” 查看。

    ------ “运维家” ,回复 “186”  ------

    ------ “运维家” ,回复 “186”  ------

    ------ “运维家” ,回复 “186”  ------

    运维工程师是干什么的,收单猫运维工程师,武威光伏运维工程师,西安运维交付工程师招聘,石家庄网络运维工程师招聘;

    数据中心运维基础工程师,运维工程师刚进公司什么都不会,顺丰的it运维工程师,佛山IDC机房运维工程师招聘,武汉仕云运维工程师加班多吗;

    运维工程师T1,设施运维工程师转型,erp运维工程师培训课题,江西环保运维工程师招聘,通富微电子桌面运维工程师;

    成都科技园运维工程师招聘,运维工程师的英语怎么说,运维工程师ppt,粤电风 电运维工程师咋样,运维工程师的薪酬。

    相关文章

      网友评论

        本文标题:python爬虫-25-python多线程安全队列Queue详解

        本文链接:https://www.haomeiwen.com/subject/swxxvrtx.html