(17)线程队列---queue LifoQueue PriorityQueue
线程常用队列有: 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的更多相关文章
- Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就绪,挂起,运行) ,***协程概念,yield模拟并发(有缺陷),Greenlet模块(手动切换),Gevent(协程并发)
Python进阶----异步同步,阻塞非阻塞,线程池(进程池)的异步+回调机制实行并发, 线程队列(Queue, LifoQueue,PriorityQueue), 事件Event,线程的三个状态(就 ...
- 网络编程基础--多线程---concurrent.futures 模块---事件Event---信号量Semaphore---定时器Timer---死锁现象 递归锁----线程队列queue
1 concurrent.futures 模块: # from abc import abstractmethod,ABCMeta # # class A(metaclass=ABCMeta): # ...
- 线程队列queue的使用
其实线程队列queue跟进程Queue的用法一样. 一.先进先出 import queue q = queue.Queue() q.put('kobe') q.put('cxk') print(q.g ...
- python网络编程-线程队列queue
一:线程queu作用 Python中,queue是线程间最常用的交换数据的形式. 队列两个作用:一个是解耦,一个是提高效率 二:语法 1)队列的类 class queue.Queue(maxsize= ...
- 线程队列queue
队列queue 队列用于线程之间安全的信息交换 队列和列表的区别:队列里的信息get()后就没了,而列表获取数据则是copy,原列表里的值还在 使用前先实例化队列 q = queue.Queue(ma ...
- 线程队列-queue
使用队列的目的: 解耦,使程序之间实现松耦合:提高处理效率 FIFO = 先进先出,first in first out LIFO = 后入先出,last in first out 生产者消费 ...
- python 线程队列PriorityQueue(优先队列)(37)
在 线程队列Queue / 线程队列LifoQueue 文章中分别介绍了先进先出队列Queue和先进后出队列LifoQueue,而今天给大家介绍的是最后一种:优先队列PriorityQueue,对队列 ...
- python线程队列Queue-FIFO(35)
之前的文章中讲解很多关于线程间通信的知识,比如:线程互斥锁lock,线程事件event,线程条件变量condition 等等,这些都是在开发中经常使用的内容,而今天继续给大家讲解一个更重要的知识点 — ...
- day33 GIL锁 线程队列 线程池
1. 全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制.Python在设计之初就考虑到要在主循环中,同时只有一个线程在执行.虽然 Python 解释器中可 ...
随机推荐
- 线段树 || BZOJ1756: Vijos1083 小白逛公园 || P4513 小白逛公园
题面:小白逛公园 题解: 对于线段树的每个节点除了普通线段树该维护的东西以外,额外维护lsum(与左端点相连的最大连续区间和).rsum(同理)和sum……就行了 代码: #include<cs ...
- 7.1-uC/OS-III中断管理
在 uC/OS 系统中,中断相当于一个优先级最高的任务.中断一般用于处理比较紧急的事件, 而且只做简单处理,例如标记该事件,带退出中断后再做详细处理.在使用 uC/OS系统时, 一般建议使用信号量. ...
- 2018-2019-1 20189221 《Linux内核原理与分析》第九周作业
2018-2019-1 20189221 <Linux内核原理与分析>第九周作业 实验八 理理解进程调度时机跟踪分析进程调度与进程切换的过程 进程调度 进度调度时机: 1.中断处理过程(包 ...
- vscode/webstorm快捷键
ctrl+/ 单行 [alt+shift+A] 多行注释 (默认的 我已经修改了) 复制当前行:shift + alt +up/down(上下箭头)可以修改成ctrl+d(改成webstorm一 ...
- 本地资源_Asset
数据 using System.Collections.Generic; using UnityEngine; public enum Enum_Test { A, B, C, } [System.S ...
- Gis数据处理2 ---8.18
1空间参考: 了解大地水准面,参考椭球体,基准面的概念 以及之间的关系 基准面描述的是参考椭球体中心 跟地心的关系 我们常说的北京54.西安80.CGCS2000,实际上指的是我国的三个大地基 ...
- Cycle (KMP + hash)
题意:给你2个串,让你判断2个字符串的前缀是否满足首尾连接形成的环是不是一样的. 思路:我们需要提前知道的是满足条件的前缀一定满足 strA = str1 + str2, strB = str2 + ...
- P1605 迷宫
P1605 迷宫 这是一道毒瘤题... 这是一道广搜题 bfs ... 代码: #include<cstdio> #include<iostream> #include< ...
- SpringMVC登录拦截DEMO
交给/login的post请求的控制器处理, 并通过控制器的逻辑控制获取提示信息login.jsp<%-- Created by IntelliJ IDEA. User: shijinglu D ...
- java41 类的高级概念