pythonqueue线程_python之线程queue
Queue的种类:
FIFO:
Queue.Queue(maxsize=0)
FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。
示例:
import queue
q = queue.Queue()
q.put(1)
q.put(2)
q.put(3)
print(q.get())
print(q.get())
print(q.get())
输出:
1
2
3
LIFO
Queue.LifoQueue(maxsize=0)
LIFO即Last in First Out,后进先出。与栈的类似,使用也很简单,maxsize用法同上
示例:
import queue
q = queue.LifoQueue()
q.put(1)
q.put(2)
q.put(3)
print(q.get())
print(q.get())
print(q.get())
输出:
3
2
1
priority
class Queue.PriorityQueue(maxsize=0)
构造一个优先队列。maxsize用法同上。
示例:
import queue
q =queue.PriorityQueue(3)
q.put((2,'aaron'))
q.put((-1,'jim'))
q.put((5,'jack'))
print(q.get())
print(q.get())
print(q.get())
输出:
(-1, 'jim')
(2, 'aaron')
(5, 'jack')
基本方法:
Queue.Queue(maxsize=0) FIFO, 如果maxsize小于1就表示队列长度无限
Queue.LifoQueue(maxsize=0) LIFO, 如果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() 清空队列
其他:
task_done()
意味着之前入队的一个任务已经完成。由队列的消费者线程调用。每一个get()调用得到一个任务,接下来的task_done()调用告诉队列该任务已经处理完毕。
如果当前一个join()正在阻塞,它将在队列中的所有任务都处理完时恢复执行(即每一个由put()调用入队的任务都有一个对应的task_done()调用)。
join()
阻塞调用线程,直到队列中的所有任务被处理掉。
只要有数据被加入队列,未完成的任务数就会增加。当消费者线程调用task_done()(意味着有消费者取得任务并完成任务),未完成的任务数就会减少。当未完成的任务数降到0,join()解除阻塞。
pythonqueue线程_python之线程queue相关推荐
- python结束线程池正在运行的线程_python之线程与线程池
#进程是资源分配的最小单位,线程是CPU调度的最小单位.每一个进程中至少有一个线程.#传统的不确切使用线程的程序称为只含有一个线程或单线程程序,而可以使用线程的程序被称为多线程程序,在程序中使用一个线 ...
- python守护线程_Python守护线程用法实例
本文实例讲述了Python守护线程用法.分享给大家供大家参考,具体如下: 如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出.如果你的主线程在退出的时 ...
- python开两个守护线程_python 守护线程
守护线程 如果python线程是守护线程,那么以为着这个线程是"不重要"的,"不重要"意味着如果他的父进程结束了但该守护线程没有运行完,守护进程就会被强制结束. ...
- python获取当前线程_Python爬虫(线程,进程)
第一章 线程的使用 并发:指的是任务数多余cpu核数 并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的 1.线程的概念 线程就是在程序运行过程中,执行程序代码的一个分支,每个运行的程序 ...
- python 在主线程开线程_Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之 ...
- python可以开多少线程_Python开启线程,在函数中开线程的实例
逻辑处理上分成了多个模块,为了提高效率,前一个模块处理完调用后一个模块操作时使用多线程 我这里遇到的情形是前面取数据后面存到mysql,发现单线程效率很低,改为取数据后开线程存到mysql 开启线程之 ...
- python多线程守护线程_Python守护程序线程
python多线程守护线程 In this tutorial we will be learning about Python Daemon Thread. In our previous tutor ...
- python结束线程_python终止线程
可以通过以下方式来终止线程:通过抛出异常来终止进程 通过一个终止标志来终止进程 使用traces来终止进程 使用多线程模型来终止进程 通过将进程设置为deamon来终止进程 使用隐藏属性_stop() ...
- pythonmultiprocessing之 queue线程_python中的进程、线程(threading、multiprocessing、Queue、subprocess)...
Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CP ...
最新文章
- 1000亿美元!英特尔要在美国建世界最大芯片厂,美520 亿美元芯片法案接近敲定...
- 从生态、业绩角度分析芯片行业
- SQL查询 的一些原则
- window下安装nvm、node.js、npm的步骤
- OpenCV+python图像处理基础操作
- 在JAXB解组期间应用名称空间
- 丁香园 武汉 神童_杭州、武汉、成都哪个城市更适合程序员发展
- android平板 深度学习,这款叫Remix的设备,或许可以拯救安卓平板
- npm run dev (明明有.vue文件),却报错 cannot GET
- EDG夺冠!每个队员获赠一套房:背后老板成最大赢家
- 洲明科技与意法半导体合作开发新一代LED显示屏
- win10如何关闭F1~F12快捷键?
- 【状压dp】AC Challenge
- DSP之时钟与定时器之一时钟发生器
- C#基础 数据类型 类型转换
- Java里String str = new String(“Hello“);会创建几个对象?
- HashMap源码注释
- appium+python环境搭建_想学习自动化测试,已经学习了appium+python环境搭建和python的简单内容,下面该怎么做?...
- 「面试必背」Linux面试题(2022最新版)
- 数据治理:数据质量管理办法
热门文章
- 高质量程序设计指南c++/c语言(25)--类与内联函数
- linux一些杂项整理
- MySQL_数据库操作
- jQuery(一)—— jQuery 概述 / jQuery 选择器 / jQuery 样式操作 / jQuery 效果
- Tips--利用shell脚本批量提取txt文件中任意字段
- LeetCode--62.不同路径(排列组合,动态规划)
- Tips--Altium Designer 安装时出现Account log in
- 一起来玩树莓派--解决官方docker源安装失败的问题
- Linux软件安装的几种方法 (一)—— apt-get
- PTA13、随机生成密码 (10 分)