我对何时在 Rails 中使用纤维局部变量而不是线程局部变量感到非常困惑。我的用例如下:
我在 rails 中有一个控制器,它在 GET 请求上进行一些计算并将结果(这是一个整数列表)存储在光纤或线程局部变量中。我需要这样做,以便我可以超出这个计算结果,让我们说一个可能由控制器创建的模型。现在我不想将它存储在会话中,因为必须为每个 GET 请求完成此计算。我还在控制器中的 GET 方法完成之前清除了光纤/线程局部变量。
现在我确实看到 Fiber 和 Thread 完全不同,因此它们的存储变量也不同。谁能解释一下何时使用哪种变量?
实际上我的理解如下:似乎永远不能同时在同一个光纤/线程中提供两个请求。因此,如果我有一个想要放入请求范围的值,那么任何一个都可以。我的解释正确吗?