美文网首页
2018-07-27

2018-07-27

作者: 计算发 | 来源:发表于2018-07-28 17:13 被阅读0次

17.7.queue- 同步队列类源代码: Lib / queue.py

该queue模块实现了多生产者,多消费者队列。当必须在多个线程之间安全地交换信息时,它在线程编程中特别有用。Queue此模块中的类实现了所有必需的锁定语义。这取决于Python中线程支持的可用性; 看threading 模块。该模块实现了三种类型的队列,它们的区别仅在于检索条目的顺序。在FIFO 队列中,添加的第一个任务是第一个检索的任务。在 LIFO队列中,最近添加的条目是第一个检索的条目(像堆栈一样运行)。使用优先级队列,条目将保持排序(使用heapq模块),并首先检索最低值的条目。在内部,这三种类型的队列使用锁来临时阻止竞争线程; 但是,它们并非旨在处理线程内的重入。此外,该模块实现了“简单” FIFO队列类型,其中特定实现可以提供额外的保证以换取较小的功能。该queue模块定义了以下类和异常:class queue.Queue(maxsize = 0 )FIFO队列的构造函数。 maxsize是一个整数,用于设置可以放入队列的项目数的上限。达到此大小后,插入将阻止,直到消耗队列项。如果 maxsize小于或等于零,则队列大小为无限大。class queue.LifoQueue(maxsize = 0 )LIFO队列的构造函数。 maxsize是一个整数,用于设置可以放入队列的项目数的上限。达到此大小后,插入将阻止,直到消耗队列项。如果 maxsize小于或等于零,则队列大小为无限大。class queue.PriorityQueue(maxsize = 0 )优先级队列的构造函数。 maxsize是一个整数,用于设置可以放入队列的项目数的上限。达到此大小后,插入将阻止,直到消耗队列项。如果 maxsize小于或等于零,则队列大小为无限大。首先检索最低值的条目(最低值条目是返回的条目sorted(list(entries))[0])。条目的典型模式是以下形式的元组:。(priority_number, data)如果数据元素不具有可比性,则可以将数据包装在忽略数据项的类中,并仅比较优先级编号:from dataclasses import dataclass, field from typing import Any @dataclass(order=True) class PrioritizedItem: priority: int item: Any=field(compare=False) 类queue.SimpleQueue无界FIFO队列的构造函数。简单队列缺少任务跟踪等高级功能。版本3.7中的新功能。异常queue.Empty在对象为空时调用非阻塞get()(或 get_nowait())时引发异常Queue。异常queue.Full在对象已满时调用非阻塞put()(或 put_nowait())时引发异常Queue。 

相关文章

网友评论

      本文标题:2018-07-27

      本文链接:https://www.haomeiwen.com/subject/rldnmftx.html