0

我有一个要调用的操作序列(以下称为sequence),并且我想为序列分配一个唯一 ID,并且能够从序列中的任何位置调用该 ID,而无需在整个序列中将其作为参数传递。序列可能是嵌套的,当在另一个序列中的一个序列中调用一个操作时,我想调用最里面的那个。

一种方法是使用线程。如果我在一个新创建的线程中执行一系列操作,那么当前线程将作为 ID 工作:

Thread do
  ...
  id = Thread.current
  ...
end

但在我的特殊情况下,我不能让一个序列一对一地对应一个线程,所以我想要一种替代方法来做到这一点。什么是这样做的好方法?

4

1 回答 1

0

我通过使用Fiber而不是解决了它Thread。我这样做是这样的:

require "fiber"
Fiber.new do
  ...
  id = Fiber.current
  ...
end.resume
于 2013-10-30T04:38:35.287 回答