モジュール jdk.management.resource
パッケージ jdk.management.resource

インタフェースResourceContext

  • すべてのスーパー・インタフェース:
    AutoCloseable


    public interface ResourceContext
    extends AutoCloseable
    リソース使用量をスレッド別に累計するResourceMeterのセットです。 ResourceContextはゼロ(0)個以上のスレッドに関連付けることができます。 ResourceContextFactory.getThreadContext()メソッドとbindThreadContext()メソッドはそれぞれ、現在のスレッドとResourceContext間の関連付けを取得および設定します。

    新しいスレッドは、新しいThreadを起動するスレッドのResourceContextに暗黙的にバインドされます。 ThreadのRunnableは、必要に応じて目的のコンテキストに明示的にバインドする必要があります。

    各メーターはResourceTypeによって識別されます。 Resourceメーターは、必要な動作を伴って作成され、コンテキストに追加されます。 特定のメーターのセマンティクはResourceMeterのサブタイプごとに指定されます。 Resource実装は、getMeter(ResourceType)を使用して適切なメーターを特定します。 ResourceRequestgetResourceRequest(ResourceType)で取得します。

    導入されたバージョン:
    8u40
    関連項目:
    ResourceContextFactoryResourceMeter
    • メソッドの詳細

      • 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 - リクエストされた精度