线程间通信推荐用队列
Posted whylinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程间通信推荐用队列相关的知识,希望对你有一定的参考价值。
# 队列是数据安全的,意思是自带锁,多线程间通信时,使用队列是好的,不会出现同一个数据被多个线程抢占,使用其他数据类型进行通信则需要自己实现锁功能 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‘)
以上是关于线程间通信推荐用队列的主要内容,如果未能解决你的问题,请参考以下文章