- 浏览: 111820 次
- 性别:
- 来自: 南昌
最新评论
python queue
模块
有三种队列
python
queue模块的FIFO队列先进先出。LIFO类似于堆。即先进后出。还有一种是优先级队列级别越低越先出来。
针对这三种队列分别有三个构造函数
class Queue.Queue(maxsize) FIFO
class Queue.LifoQueue(maxsize) LIFO
class Queue.PriorityQueue(maxsize) 优先级队列
介绍一下此包中的常用方法
Queue.qsize()
返回队列的大小
Queue.empty()
如果队列为空,返回True,反之False
Queue.full()
如果队列满了,返回True,反之False。。queue.full 与 maxsize 大小对应
Queue.get([block[, timeout]])
获取队列,timeout等待时间
Queue.get_nowait()
相当Queue.get(False). 非阻塞
Queue.put(item)
写入队列,timeout等待时间
Queue.put_nowait(item)
相当Queue.put(item, False).
Queue.task_done()
在完成一项工作之后,Queue.task_done() 函数向任务已经完成的队列发送一个信号。
Queue.join()
实际上意味着等到队列为空,再执行别的操作
#-*- coding:utf-8 -*-
import Queue
import threading
import time
import random
q = Queue.Queue(0) #当有多个线程共享一个东西的时候就可以用它了
NUM_WORKERS = 3
class MyThread(threading.Thread):
def __init__(self,input,worktype):
self._jobq = input
self._work_type = worktype
threading.Thread.__init__(self)
def run(self):
while True:
if self._jobq.qsize() > 0:
job = self._jobq.get()
worktype = self._work_type
self._process_job(job,worktype)
else:break
def _process_job(self,job,worktype):
doJob(job)
def doJob(job):
time.sleep(random.random() * 3)
print "doing",job
if __name__ == '__main__':
print "begin ...."
for i in range(NUM_WORKERS * 2):
q.put(i) #放入到任务队列中去
print "job q size:",q.qsize()
for x in range(NUM_WORKERS):
MyThread(q,x).start()
看完上面再结合下python 多线程应用
的例子会更好的理解!
发表评论
-
python classmethod类方法
2013-06-04 21:23 782python classmethod类方法的要点主要有3个: ... -
分享python ASCII返回对应的值(chr)
2013-06-04 21:17 782比如我们知道大写的A的ASCII码为 65,小写a的ASCI ... -
分享python 判断对象是否可以调用(callable)
2013-06-04 21:12 699我们需要判断python中的对象是否可以调用,可以用内置方法 ... -
python unittest单元测试方法和用例
2013-06-04 21:08 1064python内部自带了一个单元测试的模块,pyUnit也就是 ... -
python 字典(dict)get方法应用
2013-06-03 22:14 804如果我们需要获取字典值的话,我们有两种方法,一个是通过dic ... -
python 正则表达式re findall
2013-06-03 22:13 965python 正则表达式 re findall 方法能够以列 ... -
python中文分词
2013-06-03 22:13 1004python做SEO相关事情,我 ... -
python yield和generators(生成器)
2013-06-03 22:12 736在python中,yield就是这样的一个生成器。 yie ... -
fabric 批量执行服务器任务和自动化运维管理
2013-06-03 22:12 854上节我们已经把fabric给 ... -
分享fabric的安装和配置
2013-05-23 20:04 900fabric的安装可以选择用python的pip安装或者eas ... -
分享python 私有属性和方法
2013-05-23 20:04 702python默认的成员函数和 ... -
python 怎么自定义异常
2013-05-23 20:03 843如果你需要自定义异常 ... -
分享python 字符串(string) format介绍和代码
2013-05-23 20:02 757你可以用字符串的format方法来格式化输出字符串。 比如; ... -
python 包的定义,结构,导入过程
2013-05-23 20:01 669假设你想设计一个模块集(也就是一个“python 包” ... -
分享python del语句的知识点
2013-05-15 20:27 750python del方法从列表中删除某个项目索引,这个和列表 ... -
python filter, map, 和reduce
2013-05-15 20:26 670filter(function, sequence):对se ... -
python pass (空操作)语句
2013-05-15 20:25 908pass语句通常什么都不做。它可以表示语句,但这个程序不需要 ... -
python break和continue语句
2013-05-15 20:25 764break语句,就像在C语言中,打破了最小封闭for或whi ... -
分享python range方法
2013-05-11 22:42 812如果你需要遍历一个数字序列,内置函数range()就派上用场 ... -
分享下python 字符串特点
2013-05-11 22:42 717除了数值,Python可以操作字符串,它可以表现在以下几个方 ...
相关推荐
Python Queue模块 Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。 创建一个“队列”对象 import Queue q = Queue.Queue...
Python3的`queue`模块是线程安全的数据结构,它实现了多线程环境下的队列操作,主要用于在并发环境中管理任务和数据交换。队列在计算机科学中是一种基础数据结构,遵循特定的出队和入队规则,如先进先出(FIFO)、...
Python的`queue`模块是设计用于多线程和多进程环境中的并发数据结构,它提供了线程安全的数据访问。队列是一种先进先出(FIFO)的数据结构,常用于线程间的通信,确保数据的有序处理。在Python中,`queue`模块提供了...
Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。 创建一个“队列”对象 import Queue q = Queue.Queue(maxsize = 10) Queue.Queue类即是一个队列的同步实现。队列长度可为无限...
Python的`Queue`模块是线程安全的数据结构,主要用于多线程环境中的数据共享和通信。这个模块提供了三种不同类型的队列:FIFO(先进先出)、LIFO(后进先出)和Priority(优先级),每种都有其特定的应用场景。 1. ...
Python中的`queue`模块提供了多种类型的队列,包括`Queue`(默认限制大小)、`LifoQueue`(后进先出,类似堆栈)和`PriorityQueue`(优先级队列)。这些队列都实现了线程安全的`put()`和`get()`方法,用于添加和获取...
Python Queue模块有三种队列及构造函数: 1、Python Queue模块的FIFO队列先进先出。 class Queue.Queue(maxsize) 2、LIFO类似于堆,即先进后出。 class Queue.LifoQueue(maxsize) 3、还有一种是优先级队列级别越低越...
这个 Python Demo 演示了如何结合 queue 模块和 tkinter 库来创建一个能够即时更新显示时间的图形用户界面(GUI)。通过 queue 队列,我们可以将更新 GUI 的任务安全地传递给主线程,从而避免因为直接在子线程中更新...
Python中的`Queue`模块提供了线程安全的队列实现,这对于多线程环境下的数据同步和通信至关重要。队列是一种先进先出(FIFO)的数据结构,它遵循“先入先出”的原则,即最早放入队列的元素最早被取出。`Queue`模块...
* pickle: pickle模块被用来序列化python的对象到bytes流,从而适合存储到文件,网络传输,或数据库存储。(pickle的过程也被称serializing,marshalling或者flattening,pickle同时可以用来将bytes流反序列化为...
python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....
Python的`multiprocessing`模块提供了解决方案,其中`Queue`类允许我们在多个子进程中安全地交换数据。本篇文章将深入探讨如何使用`Queue`实现进程间的数据交互。 首先,让我们了解`multiprocessing`模块。它是...
### Python模块介绍大全 Python作为一门强大的编程语言,其丰富的标准库是其一大特色。本文将根据提供的部分内容,深入解析Python中的多个模块及其用途,帮助读者更好地理解和掌握这些工具。 #### 一、数据持久化...
Python内置模块是Python标准库的一部分,它们提供了许多预先编写的函数和类,使得开发者能够方便地进行各种操作。本文将详细介绍几个常用的内置模块,包括random、collections和queue。 首先,让我们来看看`random`...
`queue.Queue`是Python标准库中用于实现同步队列的标准模块。它主要用于多线程环境中,确保数据安全地在不同线程间传递。 - **构造函数**:`queue.Queue(maxsize=0)`,其中`maxsize`指定队列的最大大小,默认为0...
【Python进程Process模块】是Python中用于处理进程的模块,它是多进程编程的基础。在操作系统中,进程是对各种资源管理的单位,包括内存、网络接口等。一个进程可以包含多个子进程,每个进程都有自己的独立内存空间...