首页 > 编程语言 > 详细

线程间通信推荐用队列

时间:2018-10-28 13:33:51      阅读:149      评论:0      收藏:0      [点我收藏+]
# 队列是数据安全的,意思是自带锁,多线程间通信时,使用队列是好的,不会出现同一个数据被多个线程抢占,使用其他数据类型进行通信则需要自己实现锁功能

import queue

# 普通先进先出队列
# q = queue.Queue()   # 没有参数则表示队列没有指定深度
# q.put(1) # 如果队列指定了深度则到了深度后,会阻塞在这里等待队列有空间后再向队列中放入数据
# q.put_nowait()  # 队列满了也不会阻塞在这里,但会有异常
# q.get() # 从队列中获取数据,无数据后悔阻塞
# q.get_nowait()  # 从队列中获取数据,队列空时也不会阻塞,会报异常


# 先进后出队列,栈
# q = queue.LifoQueue()   # 创建先进后出队列,就是栈
# q.put(1)
# q.get()


# 优先级队列
q = queue.PriorityQueue()   # 优先级队列
q.put((20, a))    # 20表示优先级,值越小,优先级越高,越先被get获取到。第二个参数为值
q.put((10, ee))
q.put((10,c)) # 同样等级优先级的,则按照值的ascii码优先级,同优先级下,值的ascii码优先级越高的,越先被get到
q.put((30, cb))

print(q.get())  # (10, ‘c‘)

 

线程间通信推荐用队列

原文:https://www.cnblogs.com/whylinux/p/9865181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!