玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python模块库 > 正文内容

Python必知模块库

Python Queue模块 多线程安全 先进先出的实现

Python基础教程(第2版 修订版)
玩蛇网推荐图文教程:python黑客多线程扫描器

Queue模块提供了一个适用于多线程编程的先进先出数据结构,可以用来安全的传递多线程信息。

python Queue模块

我们先来创建一个Queue模块的队列对象:
>>> import Queue
>>> q = Queue.Queue(maxsize=10)
>>>
上面的代码中,我们先导入了Queue模块,之后创建了一个叫做变量Q的队列对象,Queue.Queue是一个,相当于创建了一个队列,这个队列有一个可参数masize,可以设置队列有长度,设置为“-1”,就可以让队列达到无限。

我们可以将一个数值放入队列中去:
>>> q.put(10)
>>>
put()方法可以在队列的尾部插入一个项目,它有2个参数,一个是需要插入的项,第二个默认参数值为1,方法让线程暂停,直到空出一个数据单元项,如果参数为0,会出发Full Python的异常

有进有出,我们将刚才插入的值,再用get()方法取出来:
>>> q.get()
>>>
q这个对象的get()方法可以从队列头部删除而且返回一个项目,有一个可选参数,默认值是真,也就是True。get()就使调用线程暂停,直至有项目可用,如果队列为空且block为False,队列将引发Empty的Python异常。

玩蛇网再给大家举一个Queue的先进先出(FIFO)队列源码案例:

>>> import Queue
>>> q = Queue.Queue() #创建队列对象
>>>
>>> for i in range(8):
>>>    q.put(i)
>>>
>>> while not q.empty():
>>>    print q.get()
>>> print # 代码只使用了一个线程
>>>
结果:0 1 2 3 4 5 6 7

玩蛇网文章,转载请注明出处和来源网址:http://www.iplaypython.com/module/queue.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网PythonQQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
出炉日期:2016-05-18 10:41 玩蛇网 www.iplaypython.com

我要分享到:    
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

必知PYTHON教程Must Know PYTHON Tutorials