繁体   English   中英

带有.each / iterator的线程安全Ruby队列

[英]Thread-Safe Ruby Queue with .each/iterator

查看Queue API ,我认为它没有#each实现或任何类型的迭代运行。 反正我们可以将线程安全的队列转换为数组或列表而不操纵队列中的任何元素吗? (假设这个队列是不可变的。)

也许我没有很好地搜索Google,但是通过线程安全操作找不到与此相关的任何内容。

任何回复都非常感谢。

Hamster gem提供了许多不可变的数据结构,其中包括一种队列形式 - Deque。

Deque没有实现each ,但它可以转换为可迭代的List。

require 'hamster/deque'

q = Hamster::Deque[1,2,3]
q.to_list.each { |n| puts n }
# => 1
# => 2
# => 3

注意:Deque在v1.0.1版本候选版本中可用。 此版本尚未发布。 较旧版本的Hamster不包括Deque,但有一些我不熟悉的Queue。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM