线程常用队列有: queue LifoQueue PriorityQueue

语法: 大致和进程队列语法一致

put 往队列当中放值,超过队列长度,直接加阻塞

get 如果获取不到加阻塞

put_nowait 如果放入的超过了队列长度,直接报异常错误

get_nowait 如果获取到直接报异常错误

(1) queue 先进先出

# 第一种写法:

from queue import Queue

# q = Queue()

#第二种写法:

import queue

q = queue.Queue()

q.put(1)

q.put(2)

print(q.get()) # 1

(2)LifoQueue 后进先出

from queue import LifoQueue

lq = LifoQueue()

lq.put(1)

lq.put(2)

lq.put('aaa')

print(lq.get()) # aaa

(3)PriorityQueue 按照优先级排序

#1.放入元组,先按照前面数字进行排列,如果数字相同,再按照ascii吗从小到大排序

from queue import PriorityQueue

pq = PriorityQueue()

pq.put((13, 'abc'))

pq.put((5, "ccc"))

pq.put((5, "bcc"))

pq.put((15, "bbb"))

print(pq.get()) # (5, 'bcc')

print(pq.get()) # (5, 'ccc')

print(pq.get()) # (13, 'abc')

print(pq.get()) # (15, 'bbb')

(4) 单独一个元素的,只能是都放同一种类型

pq = PriorityQueue()

pq.put(15)

pq.put(13)

pq.put(3)

# pq.put("3434") 报错

print(pq.get())

print(pq.get())

print(pq.get())

# print(pq.get())

(17)线程队列---queue LifoQueue PriorityQueue的更多相关文章

  1. Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就绪,挂起,运行) ,***协程概念,yield模拟并发(有缺陷),Greenlet模块(手动切换),Gevent(协程并发)

    Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就 ...

  2. 网络编程基础--多线程---concurrent.futures 模块---事件Event---信号量Semaphore---定时器Timer---死锁现象 递归锁----线程队列queue

    1 concurrent.futures 模块: # from abc import abstractmethod,ABCMeta # # class A(metaclass=ABCMeta): # ...

  3. 线程队列queue的使用

    其实线程队列queue跟进程Queue的用法一样. 一.先进先出 import queue q = queue.Queue() q.put('kobe') q.put('cxk') print(q.g ...

  4. python网络编程-线程队列queue

    一:线程queu作用 Python中,queue是线程间最常用的交换数据的形式. 队列两个作用:一个是解耦,一个是提高效率 二:语法 1)队列的类 class queue.Queue(maxsize= ...

  5. 线程队列queue

    队列queue 队列用于线程之间安全的信息交换 队列和列表的区别:队列里的信息get()后就没了,而列表获取数据则是copy,原列表里的值还在 使用前先实例化队列 q = queue.Queue(ma ...

  6. 线程队列-queue

    使用队列的目的: 解耦,使程序之间实现松耦合:提高处理效率   FIFO = 先进先出,first in first out LIFO = 后入先出,last in first out   生产者消费 ...

  7. python 线程队列PriorityQueue(优先队列)(37)

    在 线程队列Queue / 线程队列LifoQueue 文章中分别介绍了先进先出队列Queue和先进后出队列LifoQueue,而今天给大家介绍的是最后一种:优先队列PriorityQueue,对队列 ...

  8. python线程队列Queue-FIFO(35)

    之前的文章中讲解很多关于线程间通信的知识,比如:线程互斥锁lock,线程事件event,线程条件变量condition 等等,这些都是在开发中经常使用的内容,而今天继续给大家讲解一个更重要的知识点 — ...

  9. day33 GIL锁 线程队列 线程池

    1.    全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制.Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行.虽然 Python 解释器中可 ...

随机推荐

  1. 2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践 后门的基本概念及基础问题回答 常用后门工具 netcat Win获得Linux Shell Linux获得Win Sh ...

  2. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

  3. C++中vector使用详细说明 (转)

    转自:http://blog.chinaunix.net/uid-26000296-id-3785610.html http://www.cnblogs.com/mr-wid/archive/2013 ...

  4. lambda用法

    1.lambda为匿名函数,即不用起函数名2.如果函数使用次数很少并且很简洁,一般可以考虑用lambda函数3.lambda可以简化代码的可读性4.lambda不能使用if for等复杂的语法 示例一 ...

  5. JDK 1.8源码阅读 TreeMap

    一,前言 TreeMap:基于红黑树实现的,TreeMap是有序的. 二,TreeMap结构 2.1 红黑树结构 红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性.同时红黑树更是一颗 ...

  6. Linux更新时,出现无法更新锁

    1.查看软件中心是否有更新 2.重启 3.rm/var/lib/dpkg/lock 4.sudo apt-get update 5.sudo dpkg --configure -a

  7. [macOS] Cannot find libz when install php56

    After upgraded to 10.12 and xcode8.2, when updating php with homebrew, i got these errors: /usr/loca ...

  8. linux tail命令及其它日志查看命令的用法

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat L ...

  9. Network In Network学习笔记

    Network In Network学习笔记 原文地址:http://blog.csdn.net/hjimce/article/details/50458190 作者:hjimce 一.相关理论 本篇 ...

  10. 20155228 2017-11-19 实现mypwd(选做,加分)

    20155228 2017-11-19 实现mypwd(选做,加分) 题目和要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd ...