Spring 4 を使用していますが、奇妙な動作に気付きました...通常のインスタンス メソッドから async メソッドを複数回呼び出すと、それらはすべて異なるスレッドで呼び出され、ランダムな時間に終了します。しかし、別の非同期メソッドから非同期メソッドを複数回呼び出すと、順番に終了します。私はこのようなものを持っています:
@Async
public void nonAsyncMethod() {
for (int i = 0; i < 30; i++) {
asyncMethod();
}
}
@Async
public void asyncMethod() {
... something here
}
デフォルトの非同期エグゼキュータを使用しています。別のものを使用する必要がありますか?ただし、このエグゼキュータはスレッドを再利用せず、毎回別のスレッドを開始するため、問題ないはずです...単なる偶然でしょうか? しかし、私は10回以上試しましたが、最初の方法で非非同期に戻すと、ランダムに終了します