zoukankan      html  css  js  c++  java
  • python多线程编程之Queue——put/get方法

     
     

    python 的 Queue 模块提供了一种适用于多线程编程的 FIFO 实现。它可用于在生产者和消费者之间线程安全地传递消息或其它数据,因此多个线程可以共用同一个 Queue 实例。

    Queue 类实现了一个基本的先进先出(FIFO)容器,使用 put() 将元素添加到序列尾端,get() 从队列尾部移除元素。

    Queue 介绍:

    • queue 是 python 中的标准库,俗称队列,可以直接 import 引用
    • 在 python 中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了。队列可以完美解决线程间的数据交换,保证线程间数据的安全性和一致性

    Queue 模块中的常用方法:

    Queue.Queue(maxsize=0)   FIFO, 若是maxsize小于1就表示队列长度无限

    Queue.qsize()   返回队列的大小 

    Queue.empty()   若是队列为空,返回True,反之False 

    Queue.full()   若是队列满了,返回True,反之False

    Queue.get([block, [timeout]])   读队列,timeout为等待时间 

    Queue.put(item, [block, [timeout]])   写队列,timeout为等待时间 

    Queue.queue.clear()   清空队列

    把 Queue 中的所有元素转换为 list:

    # q 为队列
    1
    def get_queue_values(q): 2 ret = [] 3 while True: 4 if q.qsize() > 0: 5 ret.append(q.get()) 6 else: 7 break 8 return ret
  • 相关阅读:
    php类和对象: 类常量
    类和对象:静态属性、静态方法
    类和对象: 构造方法
    类和对象:成员属性、成员方法 — 学习笔记3
    类和对象:创建对象
    类和对象:类与对象定义
    可扩展定制可复用的倒计时插件
    SeaJS入门
    JS可复用的多条件筛选插件
    谁说转载的文章用户就不喜欢了?
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/14656834.html
Copyright © 2011-2022 走看看