041队列queue(重要,多线程使用)
2018-06-18 01:50:22来源:未知 阅读 ()
内容:队列类型、方法、使用
###############
queue定义了3种信息列队模式类
Queue([maxsize]):FIFO列队模式
LifoQueue([maxsize]):LIFO列队模式,栈模式
#######方法
q.qsize():返回列队大小
q.full():如果列队满了返回True,否则False
q.empty():如果列队为空返回True,否则为False
队列特点:先进先出,里面有一个锁,保证多线程数据安全
import queue q = queue.Queue(3) # 里面设置放多少个数据 q.put('jinxing') q.put('xming') q.put('qqqq') q.put('q', 0) # 0位置的参数默认是1,1表示超过设置个数该线程阻塞,0表示超过设置个数会报错 print(q.get()) print(q.get()) print(q.get()) print(q.get(0)) # 0表示没有会报错,默认表示阻塞
作用:可以不用使用同步,队列里面有一个锁
看下面例子:
1 from random import randint 2 import threading 3 from time import sleep 4 import queue 5 6 class Production(threading.Thread): 7 def run(self): 8 while True: 9 r = randint(0,100) 10 q.put(r) 11 print("生产出来%s号包子"%r) 12 sleep(1) 13 14 class Proces(threading.Thread): 15 def run(self): 16 while True: 17 ret = q.get() 18 print('吃掉%s号包子'%ret) 19 20 if __name__ == '__main__': 21 q = queue.Queue() 22 threads = [Production(),Production(),Production(),Proces()] 23 for t in threads: 24 t.start()
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python函数参数默认值及重要警告 2019-04-12
- 生产者、消费者模型---Queue类 2018-11-26
- queue消息队列 2018-11-12
- Python面向对象编程 2018-10-19
- Python面向对象基础 2018-09-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash