我有一系列操作(以下称为 sequence ),我想为seqnence分配一个唯一的ID,并且能够从序列中的任何位置调用该ID而不传递它作为整个序列的论据。序列可以嵌套,当在另一个序列中的序列中调用操作时,我想调用最里面的序列。
执行此操作的一种方法是使用线程。如果我在新创建的线程中执行操作序列,那么当前线程将作为ID:
Thread do
...
id = Thread.current
...
end
但在我的特殊情况下,我不能让一个序列一对一地对应一个线程,所以我想要另一种方法来做到这一点。什么是一个好方法呢?
答案 0 :(得分:0)
我使用Fiber
代替Thread
解决了这个问题。我是这样做的:
require "fiber"
Fiber.new do
...
id = Fiber.current
...
end.resume