[b0027] python 归纳 (十二)_并发队列Queue的使用

# -*- coding: UTF-8 -*-
"""
学习队列 Queue

总结:
   1. 队列可以设置大小,也可以无限大小
   2. 空了,满了,读写时可以阻塞,也可以报错
   3. 队列中可以存储不同的数据类型对象
   4. 队列的实现大量用到 线程模块 threading ,说明适用多线程之间的数据共享操作
      不确定是否适合多进程之间的数据共享操作
   5. 队列的实现用到锁操作,acquire,release,wait,notify 不需要在个人代码中使用

使用:
   1. 创建队列对象 myqueue = Queue.Queue(maxsize=2)
   2. 往队列写数据 myqueue.put(data)
   3. 从队列读数据 myqueue.get()
"""
import Queue

# size<=0,表示队列无限长度
myqueue = Queue.Queue(maxsize=2)

myqueue.put(5)
myqueue.put("ab")  # 支持不同的类型
print "flag1"
# myqueue.put("cd")      # 队列满了,会阻塞
# myqueue.put("cd",False)  # 队列满了,会报错

print "flag2"
print myqueue.qsize()  # 队列大小
print myqueue.get()
print myqueue.get()
print myqueue.qsize()  # 队列大小

print myqueue.get()       # 队列空了,会阻塞
print myqueue.get(True)   # 队列空了,会阻塞
print myqueue.get(False)  # 队列空了,抛出异常

print "flag3"

"""
Out:

flag1
flag2
2
5
ab
0
阻塞....
"""

 

posted @ 2018-09-09 03:08  sunzebo  阅读(333)  评论(0编辑  收藏  举报