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