队列就是存东西取东西,多用于多线程中

按照顺序

对传入的数据按规定的顺序输出

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" import queue #Py3中为queue,Py2中为Queue q = queue.Queue() #按照先进先出的顺序,默认参数为maxsize=0,即允许最大传入的个数
# q = queue.LifoQueue() #后进先出 q.put('a') #存数据
q.put('b')
q.put('c')
q.put('d')
q.put('d') #传入的数据也可以一样的 print(q.qsize()) #打印队列的长度 print(q.get()) #按顺序打印出数据
print(q.get())
print(q.get())
print(q.get())
print(q.get())

运行结果

传入5个数据,打印出5个数据

但是如果传入5个数据,打印6个数据的话,程序就会一直等着,直到新的数据传入为止

打印数据的get中有两个参数,一个是block,一个是timeout

block默认值为True,即为堵塞

timeout默认值为None,即为一直等候

修改参数

print(q.get(block=False)) #设为不堵塞
print(q.get(timeout=1)) #设堵塞时间为1s

再看看会是什么样

直接报错,不会在那卡着

还有一种方法

print(q.get_nowait()) #设为不等待

运行结果也是一样的

不按照顺序

默认对传入的数据按指定顺序输出按照首字母顺序进行排序

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" import queue q = queue.PriorityQueue() #按照规定的顺序 q.put('php')
q.put('python')
q.put('java')
q.put('mysql')
q.put('c++')
q.put('golang') print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())

运行结果

要是不想按首字母顺序排序的话,可以这么写

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" import queue q = queue.PriorityQueue() #按照规定的顺序 q.put((1,'php')) #传入的参数为元组
q.put((-2,'python'))
q.put((5,'java'))
q.put((0,'mysql'))
q.put((7,'c++'))
q.put((3,'golang')) print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())
print(q.get())

运行结果

Python多线程-队列的更多相关文章

  1. Python 多线程 队列 示例

    Python3,开一个线程,间隔1秒把一个递增的数字写入队列,再开一个线程,从队列中取出数字并打印到终端 #! /usr/bin/env python3 import time import thre ...

  2. python 多线程队列

    ##Using Queue with multiprocessing – Chapter : Process Based Parallelism import multiprocessing impo ...

  3. Python 用队列实现多线程并发

    # Python queue队列,实现并发,在网站多线程推荐最后也一个例子,比这货简单,但是不够规范 # encoding: utf-8 __author__ = 'yeayee.com' # 由本站 ...

  4. Python多线程与队列

    Python多线程与Queue队列多线程在感官上类似于同时执行多个程序,虽然由于GIL的存在,在Python中无法实现线程的真正并行,但是对于某些场景,多线程仍不失为一个有效的处理方法: 1,不紧急的 ...

  5. Python 多线程同步队列模型

    Python 多线程同步队列模型 我面临的问题是有个非常慢的处理逻辑(比如分词.句法),有大量的语料,想用多线程来处理. 这一个过程可以抽象成一个叫“同步队列”的模型. 具体来讲,有一个生产者(Dis ...

  6. python多线程编程

    Python多线程编程中常用方法: 1.join()方法:如果一个线程或者在函数执行的过程中调用另一个线程,并且希望待其完成操作后才能执行,那么在调用线程的时就可以使用被调线程的join方法join( ...

  7. Python 多线程教程:并发与并行

    转载于: https://my.oschina.net/leejun2005/blog/398826 在批评Python的讨论中,常常说起Python多线程是多么的难用.还有人对 global int ...

  8. 【python,threading】python多线程

    使用多线程的方式 1.  函数式:使用threading模块threading.Thread(e.g target name parameters) import time,threading def ...

  9. python消息队列snakemq使用总结

    Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...

随机推荐

  1. appium自动化测试(三)

    一. 层级定位和list 先通过find_element_by_XXX找到父级元素webelement,再通过webelement.find_element_by_XXX寻找子元素 二. 滑动屏幕 滑 ...

  2. poj2723 2-sat

    当两个门锁相同时,这个钥匙必须用,不同时分开用 可以直接遍历门,当然二分更快 #include<map> #include<set> #include<cmath> ...

  3. Build_Release.bat

    Build_Release.bat @echo off pushd "%~dp0" set tag=Release set PATH="C:\Program Files ...

  4. WAF 强化学习

    参考:https://github.com/duoergun0729/3book/tree/master/code/gym-waf 代码: wafEnv.py #-*- coding:utf-8 –* ...

  5. 转:大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合

    虽然比较久,但是这套架构已经很成熟了,记录一下 一般数据流向,从“数据采集--数据接入--流失计算--数据输出/存储”<ignore_js_op> 1).数据采集 负责从各节点上实时采集数 ...

  6. 【scala】占位符

    Scala语言为了让函数字面量更加精简,还可以使用下划线作为占位符,用来表示一个或多个参数. 我们用来表示的参数必须满足只在函数字面量中出现一次. 我们用例子来看占位符的用法 scala> va ...

  7. 实验二. 使用LoadRunner进行压力测试

    实验二. 使用LoadRunner进行压力测试 一. LoadRunner 概要介绍   1.1简介   LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具.通过以模拟上千万用户实 ...

  8. C3P0使用详解

    定义: C3P0是一个开源的JDBC连接池,目前使用它的开源项目有Hibernate,Spring等. 数据库连接池的基本思想就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入 ...

  9. linux命令三

    作业一:1) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) [root@bogon test]# cat /etc/passwd /etc/group > /1. ...

  10. YYMMDD转YYYY-MM-DD

    date.replace(/(\d{4})(\d{2})(\d{2})/g,'$1-$2-$3');