我所说的“forkable iterator”是一个常规迭代器,它使用fork()
方法创建一个新的迭代器,它从原始迭代器的当前迭代点开始迭代。即使原始迭代器被进一步迭代,fork也会停留在它被分叉的地方,直到它本身不会被迭代为止。在
我的实际用例: 我有一个套接字连接,和一些通过它发送的“包”。连接可以在“接收器”之间共享,每个“包”都可以寻址到某个“接收器”“包”可以无序地来,所以每个“接收者”都可能接收不同“接收者”的包。更重要的是,如果一个“接收者”接收到不同“接收者”的“数据包”,那么这个“不同的接收者”必须仍然能够读取该数据包。在
为此,我想实现这样一个可分叉迭代器,它将表示连接,每个接收器将创建自己的fork,读取它并搜索为其寻址的“包”。在
有人知道我所说的任何实现吗?在
您正在查找^{} function :
请注意,实现将缓冲数据以服务于所有子迭代器:
另外,您应该只使用返回的子迭代器;迭代源迭代器不会将数据传播到
tee()
iterables。在这是我当前实现的forkable迭代器:
相关问题 更多 >
编程相关推荐