インタフェースVirtualThreadSchedulerMXBean
- すべてのスーパー・インタフェース:
PlatformManagedObject
public interface VirtualThreadSchedulerMXBean extends PlatformManagedObject
JDKの「仮想スレッド」スケジューラの管理インタフェース。
VirtualThreadSchedulerMXBean
は、仮想スレッド・スケジューラのターゲット並列度のモニタリング、スケジューラで使用される「プラットフォーム・スレッド」、およびスケジューラにキューに入れられた仮想スレッド数のモニタリングをサポートします。 また、スケジューラのターゲット並列度を動的に変更することもできます。
管理インタフェースは、プラットフォームMBeanServer
に登録されています。 MBeanServer
内の管理インタフェースを一意に識別するObjectName
: "jdk.management:type=VirtualThreadScheduler"。
MXBeanインタフェースへの直接アクセスは、ManagementFactory.getPlatformMXBean(Class)
を使用して取得できます。
- 導入されたバージョン:
- 24
-
メソッドのサマリー
修飾子と型メソッド説明int
スケジューラによって現在mountedの仮想スレッド数の見積りを返します。不明な場合は-1
を返します。int
スケジューラのターゲット並列度を返します。int
スケジューラが開始したが終了していないプラットフォーム・スレッドの現在の数を返します。不明な場合は-1
を返します。long
実行を開始または続行するためにスケジューラにキューに入れられた仮想スレッドの見積りを返します。不明な場合は-1
を返します。void
setParallelism
(int size) スケジューラのターゲット並列度を設定します。インタフェースjava.lang.management.PlatformManagedObjectで宣言されたメソッド
getObjectName
-
メソッドの詳細
-
getParallelism
int getParallelism()スケジューラのターゲット並列度を返します。- 戻り値:
- スケジューラのターゲット並列度
- 関連項目:
-
setParallelism
void setParallelism(int size) スケジューラのターゲット並列度を設定します。ターゲット並列度を増やすと、スケジューラは必要に応じて、仮想スレッドのcarryに対してより多くのプラットフォーム・スレッドを使用できます。 ターゲット並列度を下げると、スケジューラが仮想スレッドの運搬に使用できるスレッドの数が少なくなります。
- APIのノート:
- 仮想スレッドが頻繁にマウントおよびアンマウントされている場合、ターゲット並列度の下方調整がすぐに有効になる可能性があります。
- 実装上のノート:
- JDKの仮想スレッド・スケジューラは
ForkJoinPool
です。 ターゲットの並列度は、デフォルトで「利用可能なプロセッサ」の数になります。 最小ターゲット並列度は1で、最大ターゲット並列度は32767です。 - パラメータ:
size
- ターゲットの並列化レベル- スロー:
IllegalArgumentException
- サイズがスケジューラでサポートされている最小値より小さいか、または最大値より大きい場合UnsupportedOperationException
- ターゲット並列度の変更がスケジューラによってサポートされていない場合- 関連項目:
-
getPoolSize
int getPoolSize()スケジューラが開始したが終了していないプラットフォーム・スレッドの現在の数を返します。不明な場合は-1
を返します。この数には、現在「持ち運ぶ」仮想スレッドであるプラットフォーム・スレッドと、現在仮想スレッドを運んでいるプラットフォーム・スレッドが含まれます。 スレッド数は、スケジューラのターゲット並列度よりも大きくなる可能性があります。
- 実装上のノート:
- JDKの仮想スレッド・スケジューラは
ForkJoinPool
です。 プール・サイズは「ワーカー・スレッドの数」です。 - 戻り値:
- スケジューラが開始したが終了していないプラットフォーム・スレッドの現在の数。不明な場合は
-1
-
getMountedVirtualThreadCount
int getMountedVirtualThreadCount()スケジューラによって現在mountedの仮想スレッド数の見積りを返します。不明な場合は-1
を返します。マウントされた仮想スレッドの数は、仮想スレッドを持つプラットフォーム・スレッドの数と同じです。
- 実装上のノート:
- このメソッドは、マウントされている仮想スレッドの数を過大評価することがあります。
- 戻り値:
- スケジューラによって現在mountedの仮想スレッド数の見積り。不明な場合は
-1
-
getQueuedVirtualThreadCount
long getQueuedVirtualThreadCount()実行を開始または続行するためにスケジューラにキューに入れられた仮想スレッドの見積りを返します。不明な場合は-1
を返します。- 実装上のノート:
- このメソッドは、実行するためにキューに入れられた仮想スレッドの数を過大評価することがあります。
- 戻り値:
- 実行を開始または続行するためにスケジューラにキューに入れられた仮想スレッド数の見積り。不明な場合は
-1
-