ray.util.queue.Queue#

class ray.util.queue.Queue(maxsize: int = 0, actor_options: Dict | None = None)[源代码]#

基类:object

Ray 上的先进先出队列实现。

其行为和使用场景与 asyncio.Queue 类相似。

功能包括同步和异步的 put 和 get 方法。提供选项在调用 put 时阻塞直到队列有空间可用,或在调用 get 时阻塞直到队列中有项目可用。

可选支持批量放置和获取操作,以最小化序列化开销。

参数:
  • maxsize (optional, int) – 队列的最大大小。如果为零,则大小不受限制。

  • actor_options (optional, Dict) – 在创建 QueueActor 时传递的选项字典。这些选项直接传递给 QueueActor.options(…)。如果你需要传递自定义资源需求,这可能会很有用。

示例

from ray.util.queue import Queue
q = Queue()
items = list(range(10))
for item in items:
    q.put(item)
for item in items:
    assert item == q.get()
# Create Queue with the underlying actor reserving 1 CPU.
q = Queue(actor_options={"num_cpus": 1})

PublicAPI (测试版): 此API目前处于测试阶段,在成为稳定版本之前可能会发生变化。

方法

empty

队列是否为空。

full

队列是否已满。

get

从队列中获取一个项目。

get_async

从队列中获取一个项目。

get_nowait

等同于 get(block=False)。

get_nowait_batch

从队列中获取项目,并按顺序将它们以列表形式返回。

put

向队列中添加一个项目。

put_async

向队列中添加一个项目。

put_nowait

等同于 put(item, block=False)。

put_nowait_batch

按顺序将项目列表放入队列中。

qsize

队列的大小。

shutdown

终止底层 QueueActor。

size

队列的大小。