-
- すべてのスーパー・インタフェース:
AutoCloseable
public interface ResourceContext extends AutoCloseable
リソース使用量をスレッド別に累計するResourceMeterのセットです。 ResourceContextはゼロ(0)個以上のスレッドに関連付けることができます。ResourceContextFactory.getThreadContext()メソッドとbindThreadContext()メソッドはそれぞれ、現在のスレッドとResourceContext間の関連付けを取得および設定します。新しいスレッドは、
新しいThreadを起動するスレッドのResourceContextに暗黙的にバインドされます。 ThreadのRunnableは、必要に応じて目的のコンテキストに明示的にバインドする必要があります。各メーターはResourceTypeによって識別されます。 Resourceメーターは、必要な動作を伴って作成され、コンテキストに
追加されます。 特定のメーターのセマンティクはResourceMeterのサブタイプごとに指定されます。 Resource実装は、getMeter(ResourceType)を使用して適切なメーターを特定します。ResourceRequestはgetResourceRequest(ResourceType)で取得します。- 導入されたバージョン:
- 8u40
- 関連項目:
ResourceContextFactory、ResourceMeter
-
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド デフォルト・メソッド 修飾子と型 メソッド 説明 default voidaddResourceMeter(ResourceMeter meter)ResourceMeterを追加します。default ResourceContextbindThreadContext()現在のスレッドにResourceContextをバインドします。default Stream<Thread>boundThreads()ResourceContextにバインドされているスレッドのストリームを返します。voidclose()すべてのスレッドからアンバインドし、すべてのメーターを削除して、ResourceContextを閉じます。ResourceMetergetMeter(ResourceType type)ResourceTypeのResourceMeterを返します。StringgetName()ResourceContextの名前を返します。ResourceRequestgetResourceRequest(ResourceType type)ResourceTypeへの割当てまたは解放のリクエストを処理する、ResourceContext内のResourceRequestを返します。Stream<ResourceMeter>meters()ResourceContext内のResourceMeterのストリームを返します。default booleanremoveResourceMeter(ResourceMeter meter)ResourceContextからResourceMeterを削除します。default voidrequestAccurateUpdate(ResourceAccuracy accuracy)ResourceContextのメトリックの更新をリクエストします。static ResourceContextunbindThreadContext()ResourceContextから現在のスレッドをアンバインドします。
-
-
-
メソッドの詳細
-
close
void close()
すべてのスレッドからアンバインドし、すべてのメーターを削除して、ResourceContextを閉じます。 メーターの値と割り当てられた値は保持され、TotalsResourceContextに追加されます。close後、ResourceContextはResourceMeterが存在しないかのように振る舞うため、ResourceMeterは追加できず、スレッドにバインドすることもできません。 閉じられているResourceContextを閉じても影響はありません。- 定義:
close、インタフェース:AutoCloseable
-
getName
String getName()
ResourceContextの名前を返します。- 戻り値:
- ResourceContextの名前
-
bindThreadContext
default ResourceContext bindThreadContext()
現在のスレッドにResourceContextをバインドします。- 実装上の注意:
- UnsupportedOperationExceptionをスローするのがデフォルトの動作です
- 戻り値:
- スレッドがバインドされたResourceContext。スレッドがバインドされていない場合は
未割当てのコンテキストが返されます - 例外:
UnsupportedOperationException- ResourceContextがバインドをサポートしていない場合
-
unbindThreadContext
static ResourceContext unbindThreadContext()
ResourceContextから現在のスレッドをアンバインドします。 スレッドは暗黙的に未割当てのコンテキストにバインドされます。- 実装上の注意:
- UnsupportedOperationExceptionをスローするのがデフォルトの動作です
- 戻り値:
- スレッドがバインドされたResourceContext。スレッドがバインドされていない場合は
未割当てのコンテキストが返されます - 例外:
UnsupportedOperationException- ResourceContextがアンバインドをサポートしていない場合
-
boundThreads
default Stream<Thread> boundThreads()
ResourceContextにバインドされているスレッドのストリームを返します。 ResourceContextにバインドされているThreadは動的であり、任意のタイミングで変更される場合があります。 スレッド・プールを使用している場合、Threadは別のタイミングで別のResourceContextにバインドされ、動的に変更される場合があります。- 実装上の注意:
- UnsupportedOperationExceptionをスローするのがデフォルトの動作です
- 戻り値:
- ResourceContextにバインドされているスレッドのストリーム
- 例外:
UnsupportedOperationException- ResourceContextがThreadのセットを保持していない場合
-
getResourceRequest
ResourceRequest getResourceRequest(ResourceType type)
ResourceTypeへの割当てまたは解放のリクエストを処理する、ResourceContext内のResourceRequestを返します。- パラメータ:
type- リクエストするリソースのResourceType- 戻り値:
- ResourceRequest。ResourceContextがリソースのメトリックをカウントしていない場合、またはメーターで
ResourceRequestを実装していない場合はnull
-
addResourceMeter
default void addResourceMeter(ResourceMeter meter)
ResourceMeterを追加します。 ResourceMeterには、ResourceContext内で一意のResourceTypeが必要です。- 実装上の注意:
- UnsupportedOperationExceptionをスローするのがデフォルトの動作です
- パラメータ:
meter- リソース・メーター- 例外:
IllegalArgumentException- ResourceContextに同じResourceTypeを持つResourceMeterが含まれている場合UnsupportedOperationException- ResourceContextがResourceMetersの追加または削除をサポートしない場合、あるいはResourceTypeがサポートされない場合
-
removeResourceMeter
default boolean removeResourceMeter(ResourceMeter meter)
ResourceContextからResourceMeterを削除します。 これによってメーターが実際に非アクティブ化されることはありませんが、現在のコンテキストの範囲からのみ実行されるようになります。- パラメータ:
meter- 削除するResourceMeter- 戻り値:
- この呼出しの結果として要素が削除された場合はtrue
- 例外:
UnsupportedOperationException- ResourceContextがMeterの追加または削除をサポートしていない場合
-
getMeter
ResourceMeter getMeter(ResourceType type)
ResourceTypeのResourceMeterを返します。- パラメータ:
type- ResourceType- 戻り値:
typeのResourceMeter。ない場合はnull
-
meters
Stream<ResourceMeter> meters()
ResourceContext内のResourceMeterのストリームを返します。- 戻り値:
- ResourceMeterのストリーム
-
requestAccurateUpdate
default void requestAccurateUpdate(ResourceAccuracy accuracy)
ResourceContextのメトリックの更新をリクエストします。 このResourceContextに指定された情報の精度がリクエストされた精度よりも低い場合、実装はリクエストされた精度を算出する計算を開始します。 より精確な測定値の計算には時間がかかる場合があります。 たとえば、最新のHEAP_RETAINED量を算出するには、ヒープをスキャンして、保持されたヒープ量をより正確に測定する必要があります。 計算が完了すると、ResourceContextのResourceMeterを介して、更新された値が報告されます。 変更のあった値のみが報告され、ResourceMeterの標準の粒度および通知メカニズムが使用されます。resourceId.getAccuracyメソッドは精度を返します。- パラメータ:
accuracy- リクエストされた精度
-
-