Python中的queue函数简介
在Python中,queue模块提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue,这些队列都实现了锁原语,可以在多线程中直接使用。
queue函数的基本用法
1、创建队列
import queue q = queue.Queue()
2、添加元素到队列
q.put('a') 添加一个元素到队列尾部并返回None q.put('b') 添加一个元素到队列尾部并返回None
3、从队列中获取元素
item = q.get() 移除并返回队列头部的元素,如果队列为空则阻塞直到有元素可取
4、检查队列是否为空
if not q.empty(): 如果队列非空则返回True,否则返回False pass
5、其他常用方法
查看队列中元素的数量 print(q.qsize()) 清空队列中的所有元素 while not q.empty(): q.get() 弹出队列中的一个元素(默认是最后一个元素)并返回它,如果不提供参数则默认弹出队头元素 element = q.pop() 弹出队列中的一个元素并返回它,如果提供参数n则弹出队头的元素,直到遇到第n个元素为止,然后返回这n个元素组成的列表,如果队列为空则阻塞直到有元素可取。 elements = list(q.islice(n)) 阻塞直到有元素可以被取出,如果提供参数timeout则阻塞timeout秒,如果在这个时间内没有元素被取出,则抛出Empty异常,当非阻塞模式时,如果队列为空则立即抛出Empty异常。 element = q.get(block=False) element = q.get(timeout=10)
queue函数的高级用法
1、设置最大尺寸的队列:可以通过maxsize参数来设置队列的最大尺寸,当试图向已满的队列中添加元素的操作会被阻塞,直到队列中有空闲空间可用或等待超时,如果将maxsize设为None,那么可以无限制地向队列中添加元素,但是这种做法并不推荐,因为这可能会导致内存耗尽。
q = queue.Queue(maxsize=5) 创建一个最大尺寸为5的队列
2、设置最小尺寸的队列:可以通过minsize参数来设置队列的最小尺寸,当试图从空的队列中删除元素的操作会被阻塞,直到队列中有元素可供取出或等待超时,如果将minsize设为None,那么可以无限制地从队列中删除元素,但是这种做法并不推荐,因为这可能会导致程序死锁。
q = queue.Queue(minsize=1) 创建一个最小尺寸为1的队列
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/156844.html