观察队列 API,我认为它没有
#each
实现或任何迭代运行。有没有办法将线程安全的队列转换为数组或列表,而不操作队列中的任何元素?(假设此队列是不可变的。)也许我在谷歌上搜索得不够好,但找不到与线程安全操作相关的任何内容。非常感谢您的回复。#each
实现或任何迭代运行。有没有办法将线程安全的队列转换为数组或列表,而不操作队列中的任何元素?(假设此队列是不可变的。)也许我在谷歌上搜索得不够好,但找不到与线程安全操作相关的任何内容。非常感谢您的回复。仓鼠宝石提供了许多不可变数据结构,其中包括一种队列——Deque。
Deque没有实现each
,但可以转换为可迭代的List。
require 'hamster/deque'
q = Hamster::Deque[1,2,3]
q.to_list.each { |n| puts n }
# => 1
# => 2
# => 3
NB:Deque 可在 v1.0.1
发布候选版中使用。该版本尚未发布。旧版的 Hamster 不包含 Deque,但具有某种我不熟悉的队列。
返回一个在末尾添加了项的新Deque。
- samxiao
pop()
弹出每个 FIFO 项。我知道这很困难,所以我正在寻找任何其他替代方案。 - samxiao