-
- すべてのスーパー・インタフェース:
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 void
addResourceMeter(ResourceMeter meter)
ResourceMeterを追加します。default ResourceContext
bindThreadContext()
現在のスレッドにResourceContextをバインドします。default Stream<Thread>
boundThreads()
ResourceContextにバインドされているスレッドのストリームを返します。void
close()
すべてのスレッドからアンバインドし、すべてのメーターを削除して、ResourceContextを閉じます。ResourceMeter
getMeter(ResourceType type)
ResourceTypeのResourceMeterを返します。String
getName()
ResourceContextの名前を返します。ResourceRequest
getResourceRequest(ResourceType type)
ResourceTypeへの割当てまたは解放のリクエストを処理する、ResourceContext内のResourceRequestを返します。Stream<ResourceMeter>
meters()
ResourceContext内のResourceMeterのストリームを返します。default boolean
removeResourceMeter(ResourceMeter meter)
ResourceContextからResourceMeterを削除します。default void
requestAccurateUpdate(ResourceAccuracy accuracy)
ResourceContextのメトリックの更新をリクエストします。static ResourceContext
unbindThreadContext()
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
- リクエストされた精度
-
-