アノテーションインターフェース ConcurrencyLimit
@TargetSE({TYPESE,METHODSE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@Reflective
public @interface ConcurrencyLimit
個々のメソッド、または型レベルでアノテーションが付けられている場合は特定のクラス階層内のすべてのプロキシ呼び出しメソッドの同時実行制限を指定する共通アノテーション。
型レベルの場合、型レベルから同時実行制限を継承するすべてのメソッドは共通の同時実行スロットルを共有し、それらのメソッド呼び出しの組み合わせは、共有された同時実行制限にコントリビュートします。一方、ローカルにアノテーションが付与されたメソッドの場合、指定された制限を持つローカルスロットルは、その特定のメソッドの呼び出しにのみ適用されます。
これは、一般的にスレッドプールの制限がない仮想スレッドで特に役立ちます。非同期タスクの場合、これは SimpleAsyncTaskExecutor で制限できます。同期呼び出しの場合、このアノテーションは ConcurrencyThrottleInterceptor を通じて同等の動作を提供します。
- 導入:
- 7.0
- 作成者:
- Juergen Hoeller
- 関連事項:
オプション要素の概要
オプション要素
要素の詳細
value
int value適用可能な同時実行制限: デフォルトでは 1 で、メソッド呼び出しごとにターゲットインスタンスが効果的にロックされます。プールのようなスロットルの場合は 1 より大きい制限を指定し、プールの上限と同様に同時呼び出しの数を制限します。
- デフォルト:
1