これは非常に基本的な同時実行に関する質問です。
Rubyでは、ローカル変数に格納された状態はスレッドセーフであると想定しても安全ですか?
具体的には、Rails アプリでのリクエストを考えています。状態を User クラスに格納すると、同時実行の問題が発生することになると思います。しかし、ユーザーをインスタンス化し (たとえば、current_user
リクエスト中に Devise メソッドで、そのメソッドが内部の独自の状態にグローバルを使用しないと仮定して)、そのユーザーをグローバル変数または定数に割り当てない場合は、そうする必要があります。スレッドの安全性を気にすることなく、そのインスタンスの状態を変更できますか?