python3多线程queue_Python多线程(3)——Queue模块
Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes)。
Python 2 中的Queue模块在Python 3中更名为 queue。
Queue对象的创建
可以通过实例化Queue类型获得队列对象:
创建新的队列,参数 maxsize 的含义是:
如果 maxsize > 0:当 q 中的元素达到 maxsize 个时,队列就满了,此时再有一个线程希望向里面插入时,如果指定了 block 选项,就会阻塞直到一个线程从里面抽出一个元素。
如果 maxsize <= 0:Python会认为这是一个没有容量限制的队列。
Queue模块定义的异常类
如果队列 q 是空的,此时又调用了 q.get(False),就会抛出该异常。
如果队列q是满的,而又调用了 q.put(x, False),就会抛出该异常。
Queue对象的方法
q.empty()
判断队列是否为空。
q.full()
判断队列是否已满。
q.get(block=True, timeout=None)
q.get_nowait()
参数 block 为 False 时,参数 timeout没有意义,因为线程不会阻塞:
如果队列不为空,取走并返回该元素;
如果队列为空,抛出Queue.Empty
block 为 True 时,结合超时 timeout 判断当队列空时,是一直阻塞进程,还是进程阻塞一段时间。
get_nowait()等于get(False),或者get(timeout=0)即不论队列空否,都不阻塞等待。
例如:
q.put(item, block=True, timeout=None)
q.put_nowait(item)
向队列中插入 item,如果队列满了,抛出Queue.Full或线程阻塞等待。
q.qsize()
返回当前队列中的元素个数。
q.join()
q.task_done()
python3多线程queue_Python多线程(3)——Queue模块相关推荐
- Python多线程(3)——Queue模块
Python多线程(3)--Queue模块 Queue模块支持先进先出(FIFO)队列,支持多线程的访问,包括一个主要的类型(Queue)和两个异常类(exception classes). Pyth ...
- python多线程queue_python多线程+队列(提高爬虫时效性)
#仅供学习使用,如有侵权请留言删除 from queue import Queue import requests from bs4 import BeautifulSoup import time ...
- python:threading多线程模块-使用Queue模块保持线程同步
利用Queue对象先进先出的特性,将每个生产者的数据一次存入队列,而每个消费者将依次从队列中取出数据 import threading # 导入threading模块 import Queue # 导 ...
- 29-30Python多线程、多线程、使用threading模块创建线程;JSON数据解析、编码为JSON类型转换对应表、Python类型转换对应表、json.dumps与json.loads
29Python3多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些 ...
- Python3.5 queue 模块详解 和 进程间通讯
queue - A synchronized queue class:https://docs.python.org/3/library/queue.html 菜鸟教程 - Python3 多线程:h ...
- Python3教程:多线程的使用教程
一.简介 Python中使用线程有两种方式:函数或者用类来包装线程对象. 函数式:调用 _thread 模块中的start_new_thread()函数来产生新线程.语法如下: 参数说明: funct ...
- python3中的多线程
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2018-07-19 21:50:16 # @Author : cdl (121 ...
- python3 多线程_python3多线程知识点总结
多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条 ...
- python3 多线程_Python3多线程爬虫实例讲解
多线程概述 多线程使得程序内部可以分出多个线程来做多件事情,充分利用CPU空闲时间,提升处理效率.python提供了两个模块来实现多线程thread 和threading ,thread 有一些缺点, ...
最新文章
- hexo框架个人博客的搭建(面试加分!)
- 干货 | NLP、知识图谱教程、书籍、网站、工具...(附资源链接)
- WebService技术
- ismember--检测集合中的元素
- SetBkMode函数用法详解
- 《HotSpot实战》读后感
- aspose 生成word 简单的文档操作
- linux 虚拟机挂载本地,CentOS 在VMWare中挂载本地yum源
- 最小值c语言 循环,C语言循环结构
-C语言求全班同学身高的最大值和最小值
- android脚步---自动完成文本框
- 你的代码,“拯救”过多少人?
- C++bitset二进制有序集
- java里当显式请求注释时才接受类名称
- 1.2 批量生成MySQL建表语句
- mil和mm之间的换算
- Python绘制二元函数图像
- C#实现简单音乐播放器
- 一个简易的FTP客户端软件
- CE修改Eternium永恒之金【进阶篇】
- web课程设计网页规划与设计~在线阅读小说网页共6个页面(HTML+CSS+JavaScript+Bootstrap)...
热门文章
- 小白开学Asp.Net Core 《五》
- 从ASP.NET Core2.2到3.0你可能会遇到这些问题
- .NET Core 开源项目 Anet 在路上
- eShopOnContainers 看微服务 ②:配置 启动
- 【翻译】asp.net core中使用MediatR
- 为什么 web 开发人员需要迁移到. NET Core, 并使用 ASP.NET Core MVC 构建 web 和 API
- 业务配置开发平台qMISPlat 2.0 产品介绍
- ASP.NET Core MVC 2.1 顶级参数验证
- ASP.NET MVC使用Oauth2.0实现身份验证
- 协作更进一步:微软隆重介绍Visual Studio动态分享功能