VirtualThreadSchedulerMXBean supports monitoring of the virtual thread
scheduler's target parallelism, the platform threads
used by the scheduler, and the number of virtual threads queued to the scheduler. It
also supports dynamically changing the scheduler's target parallelism.
The management interface is registered with the platform MBeanServer. The ObjectName that uniquely identifies the management
interface within the MBeanServer is: "jdk.management:type=VirtualThreadScheduler".
Direct access to the MXBean interface can be obtained with
ManagementFactory#getPlatformMXBean(Class).
| Modifier and Type | Method and Description |
|---|---|
| public int | Returns: an estimate of the number of virtual threads that are currently mounted by the scheduler;-1 if not knownReturns an estimate of the number of virtual threads that are currently
mounted by the scheduler; |
| public int | Returns: the scheduler's target parallelismReturns the scheduler's target parallelism. |
| public int | Returns: the current number of platform threads that the scheduler has started but have not terminated;-1 if not knownReturns the current number of platform threads that the scheduler has started
but have not terminated; |
| public long | Returns: an estimate of the number of virtual threads that are queued to the scheduler to start or continue execution;-1 if not knownReturns an estimate of the number of virtual threads that are queued to
the scheduler to start or continue execution; |
| public void |
| getMountedVirtualThreadCount | back to summary |
|---|---|
| public int getMountedVirtualThreadCount() Returns an estimate of the number of virtual threads that are currently
mounted by the scheduler; The number of mounted virtual threads is equal to the number of platform threads carrying virtual threads. Implementation Note This method may overestimate the number of virtual threads that are mounted.
| |
| getParallelism | back to summary |
|---|---|
| public int getParallelism() Returns the scheduler's target parallelism.
| |
| getPoolSize | back to summary |
|---|---|
| public int getPoolSize() Returns the current number of platform threads that the scheduler has started
but have not terminated; The count includes the platform threads that are currently carrying virtual threads and the platform threads that are not currently carrying virtual threads. The thread count may be greater than the scheduler's target parallelism. Implementation Note The JDK's virtual thread scheduler is a
| |
| getQueuedVirtualThreadCount | back to summary |
|---|---|
| public long getQueuedVirtualThreadCount() Returns an estimate of the number of virtual threads that are queued to
the scheduler to start or continue execution; Implementation Note This method may overestimate the number of virtual threads that are queued to execute.
| |
| setParallelism | back to summary |
|---|---|
| public void setParallelism(int size) Sets the scheduler's target parallelism. Increasing the target parallelism allows the scheduler to use more platform threads to carry virtual threads if required. Decreasing the target parallelism reduces the number of threads that the scheduler may use to carry virtual threads. API Note If virtual threads are mounting and unmounting frequently then downward adjustment of the target parallelism will likely come into effect quickly. Implementation Note The JDK's virtual thread scheduler is a
| |