Rails / Sinatraアプリが一度だけ初期化され、すべてのリクエストが同じアプリインスタンスを共有していると断言できますか?または、新しいリクエストは新しいアプリインスタンスを生成しますか?
一般的ではありません。これは実際にはセットアップによって異なります。同じアプリケーションオブジェクトを再利用するサーバー(別名ラックハンドラー)を使用してプロセスでのみ実行する場合、これは機能します。アプリケーションの同じインスタンスが使用されるかどうかは、使用しているWebフレームワークによって異なります。Sinatra::Application
たとえば、Sinatraは、Rackエンドポイントとして使用される場合、すべてのリクエストに対してアプリケーションクラスの新しいインスタンス(通常は)を作成します。
セッション、データベースストレージ、またはサードパーティのサービスを使用せずに、カスタムクラスをインスタンス化して、アプリの存続期間中に永続化することは可能ですか?もしそうなら、スレッドの安全性の観点からどのような影響がありますか?
本当にクラスを永続化したい場合は、おそらくmaglevのようなものが必要になります。ただし、カスタムクラスのインスタンスを永続化することを意味すると思います。永続化のためにデータベースを使用したくない場合(実際に使用する必要があります)、Rubyに付属しているPStoreにフォールバックできます。