@Asyncアノテーションを使用して非同期呼び出しを実装しようとしています。明らかにレガシー プロジェクトであるため、Spring バージョンは 3.0.6 であるため、以降の Spring バージョンで導入された新しいインターフェイス ( AsyncConfigurer ) とリスナーはサポートされていません。
現時点では、@Async呼び出しは、電子メールの送信に必要なメソッドで問題なく機能します。呼び出しコードはメソッドを呼び出し、通常の制御を再開するために戻ります。@Async呼び出しは、別のスレッドとして呼び出されます。これはすべて非常に優れており、目的を果たしています。
@Async呼び出しは、アプリケーションで電子メールを送信するために存在するメソッドにあります。ただし、場合によっては、1000 通の電子メールがトリガーされることがあります。これにより、1000程度のスレッドが発生すると思います。これは、非常に多くのライブ スレッドがあるアプリケーションで問題を引き起こさないでしょうか? これらのスレッドは自然に終了しますか? メモリー使用量とヒープ・スペースに関して、JVM で何が起こっていますか?
さらに、そのメソッドを@Asyncとしてマークすることにより、別のメソッドからこのメソッドを呼び出そうとしましたが、スレッドが作成されていないように見え、コントロールは実際にそこで待機してそのメソッドのすべての操作を終了します。なぜそれは異なる振る舞いをするのですか?なぜそれが起こったのか分かりません。
前もって感謝します!