用python实现队列,python循环队列的实现
队列
Q=队列。Queue(maxsize=10)来创建一个“Queue”对象。排队。队列类是队列的同步实现。队列长度可以是或有限的。队列长度可以通过Queue构造函数的可选参数maxsize来设置。如果maxsize小于1,则表示队列长度。
q.put()方法在队列末尾插入一个项目。Put()有两个参数,第一项是必需的,是插入项的值;第二个块是可选参数,默认为1。如果队列当前为空,块为1,put()方法会使调用线程暂停,直到数据单元为空。如果block为0,put方法将抛出一个完整的异常。
q.get([block[,timeout]])方法从队列头删除并返回一个项目。可选参数为block,默认值为True。如果队列为空,block为True,get()会使调用线程暂停,直到有一个项目可用。如果队列为空且block为False,队列将抛出一个空异常,超时等待时间。
Q.qsize()返回队列的大小。
如果队列为空,Q.empty()返回True,否则返回False。
如果队列已满,Q.full()返回True,否则返回False。
Q.full对应于maxsize的大小
Q.get_nowait()等价于q.get(False)
Q.put_nowait(item)等价于q.put(item,False)
Q.task_done()在一个任务完成后,q.task_done()函数向任务已经完成的队列发送一个信号。
Q.join()实际上意味着在执行其他操作之前一直等到队列为空。
导入队列
d=队列。队列()
d.put(1 )
d.put(2 )
d.put(3 )
print(d.get())
print(d.get())
print(d.get())
print(d.get())
Print(d.get(0))运行结果:
一个
2
3错误报告:
排队。空线程操作列表不安全。
相关:《Python视频教程》
导入线程,时间
李=[12345]
defpri():
whileli:
a=李[-1]
打印(一份)
时间.睡眠(1)
尝试:
李. remove(一)
例外:
打印(-,a)
t1=线程。线程(target=pri,args=())
t1.start()
t2=线程。线程(target=pri,args=())
T2.start()运行结果3360
五
五
四
- 5
四
三
- 4
三
2
- 3
2
一个
- 2
一个
-1导入线程,队列
fromtimeimportsleep
fromrandomimportrandint
classProduction(线程。螺纹):
defrun(self):
whileTrue:
r=randint(0,100)
put(r)
打印(生产的%s包子 %r )
睡眠(1)
classProces(线程。螺纹):
defrun(self):
whileTrue:
re=q.get()
打印(吃%s包子 %re )
if__name__==__main__:
q=队列。队列(10)
线程=[生产()、生产()、生产()、处理()]
fortinthreads:
T.start()运行结果3360
生产94号包子。
出产13号包子。
出产79号包子。
吃94号馒头
吃13号馒头
吃79号馒头
出产43号包子。
吃43号馒头
出产32号包子。
吃32号馒头
.相关建议:
如何在Python中实现线程条件同步
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。