Python的Socket知识7:队列、生产者消费者模型

1、队列

      队列是一种数据结构,队列queue 多应用在多线程应用中,多线程访问共享变量。对于多线程而言,访问共享变量时,队列queue是线程安全的。从queue队列的具体实现中,可以看出queue使用了1个线程互斥锁(pthread.Lock()),以及3个条件标量(pthread.condition()),来保证了线程安全。

主要的队列类型:

  • 先进先出(First in First Out)。Queue.Queue()

  • 后进先出(Last in First Out)。Queue.LifoQueue()

  • 优先级队列Queue.PriorityQueue()

  • 双向队列Queue.deque()

基本方法:

1)创建一个“队列”对象
import Queue
q = Queue.Queue(maxsize = 10)
    Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。

2)将一个值放入队列中
q.put(10,block=False,timeout=2)
    调用队列对象的put()方法在队尾插入一个项目。put()有三个参数,第一个item为必需的,为插入项目的值;第二个block为可选参数,默认为1,表示阻塞。还有一个超时时间。如果队列当前为空且b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值