隐式地为一系列操作分配ID的最佳方法是什么?

时间:2013-10-30 02:50:57

标签: ruby

我有一系列操作(以下称为 sequence ),我想为seqnence分配一个唯一的ID,并且能够从序列中的任何位置调用该ID而不传递它作为整个序列的论据。序列可以嵌套,当在另一个序列中的序列中调用操作时,我想调用最里面的序列。

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

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

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

1 个答案:

答案 0 :(得分:0)

我使用Fiber代替Thread解决了这个问题。我是这样做的:

require "fiber"
Fiber.new do
  ...
  id = Fiber.current
  ...
end.resume