Python queue

1.队列是先进先出的模型

import queue

q = queue.Queue()

q.put(123)
q.task_done()

q.join()
print (q.get())

q.join()跟q.task_done()要联合起来使用。q.join()只有前面的动作完成了之后后面的动作才能执行,譬如上面的例子,如果注释掉q.task_done,那么对于通道的操作是不能被捕获的,所以就一直不会执行q.join()后面的操作了。

只有当每一次的put都有一个返回给通道的值得时候,q.join()获取到该消息,然后可以取出其中的部分消息

import queue

q = queue.Queue()

q.put(123)
q.task_done()
q.put(456)
q.task_done()
q.put(456)
q.task_done()
print (q._qsize())

q.join()
print (q.get())
时间: 2024-08-09 10:37:58

Python queue的相关文章

Python Queue模块

创建一个"队列"对象 import Queuemyqueue = Queue.Queue(maxsize = 10) Queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的可选参数maxsize来设定队列长度.如果maxsize小于1就表示队列长度无限. 将一个值放入队列中 myqueue.put(10) 调用队列对象的put()方法在队尾插入一个项目.put()有两个参数,第一个item为必需的,为插入项目的值:第二个block为可选参

python Queue模块使用

Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外. 创建一个"队列"对象import Queueq = Queue.Queue(maxsize = 10)Queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的可选参数maxsize来设定队列长度.如果maxsize小于1就表示队列长度无限. 将一个值放入队列中q.put(10)    put(item[

Python Queue实现生产与消费

Python Queue模块详解 from:https://blog.linuxeye.com/334.html Python中,队列是线程间最常用的交换数据的形式.Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外. 创建一个“队列”对象import Queueq = Queue.Queue(maxsize = 10)Queue.Queue类即是一个队列的同步实现.队列长度可为无限或者有限.可通过Queue的构造函数的可选参数maxsize来设定队列长度.如果

python Queue在两个地方

其一: Source code: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It is especially useful in threaded programming when information must be exchanged safely between multiple threads. The Queue class in this module implem

Python queue队列

一.队列在多线程的程序必须安全的在多个线程之间交互的时候是非常有用的. 1. 先入先出 1 class queue.Queue(maxsize = 0) 1 #!/usr/bin/python 2 # -*- coding : utf-8 -*- 3 # 作者: Presley 4 # 时间: 2018-12-1 5 # 邮箱:[email protected] 6 # 这是我用来练习python 队列的测试脚本 7 8 import queue 9 class Foo(object): 10

简单介绍一下python Queue中常用的方法

Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回True,反之False Queue.full() 如果队列满了,返回True,反之FalseQueue.full 与 maxsize 大小对应 Queue.get([block[, timeout]])获取队列,timeout等待时间 Queue.get_nowait() 相当Queue.get(False)非阻塞 Queue.put(item) 写入队列,timeout等待时间 Queue.put_no

python Queue模块用于多线程通信

# -*-coding:utf-8 -*- import Queue import threading import time q = Queue.Queue(100000) def producer():     for i in range(1000):         q.put(i)         time.sleep(0) def consumer():     for i in range(1000):         print q.get(), q.qsize()       

41. Python Queue 多进程的消息队列 PIPE

消息队列: 消息队列是在消息传输过程中保存消息的容器. 消息队列最经典的用法就是消费者和生产者之间通过消息管道来传递消息,消费者和生产生是不通的进程.生产者往管道中写消息,消费者从管道中读消息. 相当于水管,有一个入口和出口,水从入口流入出口流出,这就是一个消息队列 线程或进程往队列里面添加数据,出口从队列里面读数据 左侧多线程往入口处添加完数据,任务就结束了:右侧只要依次从水管里取数据就行了. 异步完成的任务 比如京东下单,下单后付完钱,相当于把消息堆在了水管里,后台会有线程去接收这个单的消息

python queue 模块

1 queue 模块 分类(共同点if maxsize <=0 队列长度没有限制.) queue.Queue(maxsize =0)  First in first OUT(FIFO) queue.LifoQueue(maxsize=0)  后进先出(Last In First Out: LIFO)队列 PriorityQueue(maxsize=0) 优先级队列,比较队列中每个数据的大小,值最小的数据拥有出队列的优先权.数据一般以元组的形式插入,典型形式为(priority_number, d