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

按照顺序

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

# -*- 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. 第一章 Burp Suite 安装和环境配置

    Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击.在渗透测试中,我们使用Burp Suite将使得测试工作变得更 ...

  2. react style: 二级菜单

    1.样式 @import "../../styles/varibles"; .app-sidebar { overflow: hidden; width: 180px; > ...

  3. 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明

    <foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...

  4. css3 伪类

    ::selection { 选中后的样式 } 链接 p:only-child     p的父级只有一个p标签 p:only-of-type   p的父级有一个p标签, 但还可以包含其他标签 p:fis ...

  5. iOS Charles Proxy 教程

    原文:Charles Proxy Tutorial for iOS 作者:Aaron Douglas 译者:kmyhy 有时不得不承认--我们曾经写过一些代码,它们不正确,但我们又无法调试.更麻烦的是 ...

  6. ubuntu与windows共享文件

    一.通过vmmare tool工具共享文件 Ubuntu系列10.04.11.04.12.04等虚拟机中安装VMware Tools参考下面两篇文章. http://www.linuxidc.com/ ...

  7. Golang调用windows下的dll动态库中的函数

    Golang调用windows下的dll动态库中的函数 使用syscall调用. package main import ( "fmt" "syscall" & ...

  8. 如何突破 Java 程序员的分水岭

    第一阶段:一年之内的 JAVA 从业人员 这个阶段是你成长极快的阶段,而且你可能会经常加班.但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习.在这一年里,你至少需 ...

  9. RedHat Server Enterprise 6安装G++

    RedHat 6默认是安装有GCC,而没有安装G++编译 要安装G++前最好先查看下GCC的版本号,通常GCC的版本和G++的版本是相同的,知道GCC的版本再去找G++的安装文件就容易些,版本号有在安 ...

  10. 网络爬虫必备知识之urllib库

    就库的范围,个人认为网络爬虫必备库知识包括urllib.requests.re.BeautifulSoup.concurrent.futures,接下来将结合爬虫示例分别对urllib库的使用方法进行 ...