小编给大家分享一下Python实现队列同步的方法是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
<强>队列强>
=队列。队列(最大容量=10)创建一个“队”列对象.Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过队列的构造函数的可选参数最大尺寸来设定队列长度。如果最大容量小于1就表示队列长度无限。
q.put()方法在队尾插入一个项目.put()有两个参数,第一个项目为必需的,为插入项目的值;第二个街区为可选参数,默认为1。如果队列当前为空且块为1,把()方法就使调用线程暂停,直到空出一个数据单元。如果块为0,把方法将引发全异常。
。得到([块[,超时]])方法从队头删除并返回一个项目。可选参数为块,默认为真的。如果队列为空且块为真,得到()就使调用线程暂停,直至有项目可用。如果队列为空且块为False,队列将引发空异常,超时等待时间。
q.qsize()返回队列的大小
q.empty()如果队列为空,返回真,反之假
q.full()如果队列满了,返回真,反之假
。完全与最大容量大小对应
q.get_nowait()相当q.get (False)
q.put_nowait(项)相当q。(项目,假)
q.task_done()在完成一项工作之后,q.task_done()函数向任务已经完成的队列发送一个信号
q.join()实际上意味着等到队列为空,再执行别的操作
import 队列 时间=d queue.Queue () d.put (& # 39; 1 & # 39;) d.put (& # 39; 2 & # 39;) d.put (& # 39; 3 & # 39;) print (d.get ()) print (d.get ()) print (d.get ()) print (d.get ()) 打印(d.get (0))
运行结果:
1 2 3
报错:
队列。空
线程操作列表是不安全的。
import 线程、时间 时间=li [1,, 2,, 3,, 4,, 5] def pri (): ,,,while 李: ,,,,,,,a =, li [1] ,,,,,,,印刷(a) ,,,,,,,time . sleep (1) ,,,,,,,试一试: ,,,,,,,,,,,li.remove (a) ,,,,,,,除了: ,,,,,,,,,,,印刷(& # 39;- - - - - - - - - - - # 39;,,) t1 =, threading.Thread(目标=革命制度党,arg游戏=()) t1.start () t2 =, threading.Thread(目标=革命制度党,arg游戏=()) t2.start ()
运行结果:
5 5 4 ——安康;5 4 3. ——安康;4 3. 2 ——安康;3 2 1 ————安康;2 1 ——安康;1
import 线程、队列 得到time import 睡眠 得到random import  randint class 生产(threading.Thread): ,,,def 运行(自我): ,,,,,,,while 正确的: ,,,,,,,,,,,r =, randint (0, 100) ,,,,,,,,,,,q.put(右) ,,,,,,,,,,,印刷(“生产出来,% s 号包子“,% r) ,,,,,,,,,,,睡眠(1) class 过程(threading.Thread): ,,,def 运行(自我): ,,,,,,,while 正确的: ,,,,,,,,,,,re =, q.get () ,,,,,,,,,,,印刷(& # 39;吃掉,% s号包子& # 39;,%再保险) if __name__ ==, & # 39; __main__ # 39;: ,,,q =, queue.Queue (10) ,,,threads =,(生产(),(),(),生产过程()) ,,,for t 拷贝线程: ,,,,,,,t.start ()
运行结果:
生产出来,94,号包子 生产出来,13,号包子 生产出来,79,号包子 吃掉,94号包子 吃掉,13号包子 吃掉,79号包子 生产出来,43,号包子 吃掉,43号包子 生产出来,32,号包子 吃掉,32号包子 ……
看完了这篇文章,相信你对Python实现队列同步的方法是什么有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!