码迷,mamicode.com
首页 > 编程语言 > 详细

线程间通信推荐用队列

时间:2018-10-28 13:41:10      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:指定   ascii码   需要   参数   没有   获取数据   数据   深度   ascii   

# 队列是数据安全的,意思是自带锁,多线程间通信时,使用队列是好的,不会出现同一个数据被多个线程抢占,使用其他数据类型进行通信则需要自己实现锁功能

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‘)

 

线程间通信推荐用队列

标签:指定   ascii码   需要   参数   没有   获取数据   数据   深度   ascii   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!