一、线程队列
queue队列:使用方法同进程的Queue一样
如果必须在多个线程之间安全地交换信息时,队列在线程编程中尤其有用。
重要:
q.put()
:往队列里面放值,当参数block=Ture的时候,timeout参数将会有作用,当队列已经满了的时候,在往里面放值时,block为True程序将会等待timeout的时间,过了时间程序会报错,block如果为Flase时,程序不会等待直接报错
q.get()
:从队列里面取值,当参数block=Ture的时候,timeout参数将会有作用,当队列已经空了的时候,在从里面取值时,block为True程序将会等待timeout的时间,过了时间程序会报错,block如果为Flase时,程序不会等待直接报错
q.task_done()
:使用者使用此方法发出信号,表示q.get()返回的项目已经被处理。如果调用此方法的次数大于从队列中删除的项目数量,将引发ValueError异常。
q.join()
:生产者将使用此方法进行阻塞,直到队列中所有项目均被处理。阻塞将持续到为队列中的每个项目均调用q.task_done()方法为止。
二、线程队列的取值方式
2.1 先进先出
class queue.Queue(maxsize=0)
q = queue.Queue()
:不加参数代表队列可以无限的放数据
q = queue.Queue() #不加参数代表队列可以无限的放数据 q.put('Cecilia陈') q.put('xichen') print(q.get()) print(q.get()) ''' 结果: Cecilia陈 xichen '''
2.2 后进先出
class queue.LifoQueue(maxsize=0)
q = Lifo.Queue()
:不加参数代表队列可以无限的放数据
q = queue.LifoQueue() #不加参数代表队列可以无线的放数据 q.put('Cecilia陈') q.put('xichen') print(q.get()) print(q.get()) ''' 结果: xichen Cecilia陈 '''
三、队列存数据时可以设置优先级
class queue.priorityQueue(maxsize=0)
q = queue.priorityQueue()
:不加参数代表队列可以无限的放数据
3.1 优先级队列
# 3.优先级队列 q = queue.PriorityQueue() #不加参数代表队列可以无线的放数据 #put进入一个元组,元组的第一个元素是优先级(通常是数字,也可以是非数字之间的比较),数字越小优先级越高 q.put((2,'Cecilia陈')) q.put((1,'xichen')) q.put((5,'xuchen')) print(q.get()) print(q.get()) print(q.get()) ''' # 结果(数字越小优先级越高,优先级高的优先出队): 结果: (1, 'xichen') (2, 'Cecilia陈') (5, 'xuchen') '''
3.2 方法说明
maxsize
是一个整数,它设置可以放置在队列中的项数的上限。一旦达到此大小,插入将阻塞,直到使用队列项。如果maxsize小于或等于零,则队列大小为无穷大。
p.put()
:放值的时候,放的是一个元组()
exception queue.Empty
:异常队列。空:当对空的队列对象调用非阻塞 get() 或 get_nowait() 时引发异常,也就是说队列为空的时候,再取值就会报错
exception queue.Full
:异常队列。Full:当对已满的队列对象调用非阻塞put() 或 put_nowait() 时引发异常。也就是说当队列已满的时候,再往里面当值的时候将会报错
Queue.qsize ()
:
empty()
:如果为空,返回True
Queue.full()
:如果已满,返回True
put_nowait(item)
:等同于put(item, False)。
get_nowait()
:等同于get(False)。
提供了两种方法来支持跟踪已加入队列的任务是否已被守护进程使用者线程完全处理:
task_done()
:表示以前加入队列的任务已经完成。由队列使用者线程使用。对于用于获取任务的每个get(),后续对task_done()的调用告诉队列任务上的处理已经完成。如果join(当前处于阻塞状态,那么在处理完所有项之后,它将继续运行(这意味着对于已经放入队列()的每个项,都收到了task_done()调用)。
如果调用次数超过放置在队列中的项的次数,则引发ValueError。
Queue.join()
:块直到队列被消费完毕。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]