Python 线程相关 线程queue

线程queue
Python3中的所有模块名都变成了纯小写了。

  • 进程的队列不能给线程用
  • 线程间通信使用线程queue
  • 不通过其他机制线程间的通信,但是要考虑锁的问题,用了队列就不用考虑锁的问题了
  • 对于程序的不同组件,在现实中分布式的运行在多台机器效率更好,这些机器间为了仍然能够协调合作需要通信,就将通信队列组件也部署在一台机器上,让其他别的机器都连着这台机器就可以实现间接通信了。这样一来效率提高,稳定性也提高,只有一台机器坏了并不影响其他机器上的组件,但是队列所在机器坏了就不好办了,所以队列使用集群实现。
  • 以后不管是进程还是线程都基于队列进行通信
  • 用本机上封装好的一些特殊功能时,使用本地的进程queue和线程queue

队列先进先出

#线程queue
import queue

q=queue.Queue(3)  #队列  先进先出  queue模块还有其他概念


q.put(1)
q.put(2)
q.put(3)

print(q.get())
print(q.get())
print(q.get())

#和进程queue一样 还有 q.put_nowait()和q.put(4,block=False),q.put(4,block=True,timeout=3)

结果:
1
2
3

堆栈:后进先出

s=queue.LifoQueue(3)
s.put(4)
s.put(5)
s.put(6)

print(s.get())
print(s.get())
print(s.get())

结果
6
5
4

优先级队列

f=queue.PriorityQueue(3)
f.put((10,'a'))  #数字最小的先出来,数字越小优先级越高
f.put((-3,'b'))
f.put((100,'c'))

print(f.get())
print(f.get())
print(f.get())
结果
(-3, 'b')
(10, 'a')
(100, 'c')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值