0

呼び出される一連の操作 (以降、sequence ) があり、一意の ID をシーケンスに割り当てて、シーケンス全体で引数として渡すことなく、シーケンス内のどこからでもその ID を呼び出せるようにしたいと考えています。シーケンスは入れ子にすることができ、別のシーケンス内のシーケンス内で操作が呼び出される場合は、最も内側のものを呼び出したいと思います。

これを行う 1 つの方法は、スレッドを使用することです。新しく作成したスレッド内で一連の操作を実行すると、現在のスレッドが ID として機能します。

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

しかし、私の特定のケースでは、シーケンスをスレッドに 1 対 1 で対応させることができないため、これを行う別の方法が必要です。それを行う良い方法は何ですか?

4

1 に答える 1

0

Fiberの代わりに使用して解決しましたThread。私はこのようにやっています:

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