Java EE コンテナでのスレッド: スレッドの生成を避けるべき理由
Java EE 開発では、一般にコンテナ内で新しいスレッドを生成します。眉をひそめた。その理由は次のとおりです。
-
リソース管理の問題: コンテナ環境内のすべてのリソースは、監視と調整の目的でサーバーによって管理される必要があります。スレッドが生成されると、これらのリソースにアクセスできない場合があります。
-
コンテキストの制限: Java EE 環境のスレッドの実行コンテキストは、通常、スレッド自体にアタッチされます。コンテナの外部で作成されたカスタム スレッドは、JNDI ルックアップ機能を含むこのコンテキストにアクセスできない場合があります。
代替アプローチ:
非同期操作の場合、いくつかの推奨方法があります。アプローチが存在します:
-
ワークマネージャー: Java EE 仕様では、javax.enterprise.concurrent.WorkManager インターフェイスが提供されており、開発者はコンテナによって監視および管理されるマネージド スレッドを作成できます。
-
マネージド クラス (EJB、CDI): EJB や CDI Bean などのマネージド クラスを非同期操作に使用できます。これらはマネージド スレッド プールを提供し、コンテナ内で利用可能なリソースとサービスを注入できます。
-
スケジューラ (JSR-349): Java EE スケジューラ仕様は、タスクをスケジュールするための標準化された API を定義します。 Java EE環境。指定した間隔で、またはトリガーに基づいてタスクを実行できます。
注: この記事で提供される情報は、2009 年の Java EE の状態に基づいています。次に、Java EE のスレッド管理が改善されました。最新のベスト プラクティスについては、使用している特定のプラットフォームとバージョンの最新ドキュメントを参照してください。
以上がJava EE コンテナでスレッドの生成を回避する理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。