Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 java.management.jmod - Management Module
JDK 11 java.management.jmod is the JMOD file for JDK 11 Management module.
JDK 11 Management module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.management.jmod.
JDK 11 Management module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Management module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.management.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/management/ThreadImpl.java
/* * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package sun.management; import java.lang.management.ManagementFactory; import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; import javax.management.ObjectName; /** * Implementation for java.lang.management.ThreadMXBean as well as providing the * supporting method for com.sun.management.ThreadMXBean. * The supporting method for com.sun.management.ThreadMXBean can be moved to * jdk.management in the future. */ public class ThreadImpl implements ThreadMXBean { private final VMManagement jvm; // default for thread contention monitoring is disabled. private boolean contentionMonitoringEnabled = false; private boolean cpuTimeEnabled; private boolean allocatedMemoryEnabled; /** * Constructor of ThreadImpl class. */ protected ThreadImpl(VMManagement vm) { this.jvm = vm; this.cpuTimeEnabled = jvm.isThreadCpuTimeEnabled(); this.allocatedMemoryEnabled = jvm.isThreadAllocatedMemoryEnabled(); } @Override public int getThreadCount() { return jvm.getLiveThreadCount(); } @Override public int getPeakThreadCount() { return jvm.getPeakThreadCount(); } @Override public long getTotalStartedThreadCount() { return jvm.getTotalThreadCount(); } @Override public int getDaemonThreadCount() { return jvm.getDaemonThreadCount(); } @Override public boolean isThreadContentionMonitoringSupported() { return jvm.isThreadContentionMonitoringSupported(); } @Override public synchronized boolean isThreadContentionMonitoringEnabled() { if (!isThreadContentionMonitoringSupported()) { throw new UnsupportedOperationException( "Thread contention monitoring is not supported."); } return contentionMonitoringEnabled; } @Override public boolean isThreadCpuTimeSupported() { return jvm.isOtherThreadCpuTimeSupported(); } @Override public boolean isCurrentThreadCpuTimeSupported() { return jvm.isCurrentThreadCpuTimeSupported(); } protected boolean isThreadAllocatedMemorySupported() { return jvm.isThreadAllocatedMemorySupported(); } @Override public boolean isThreadCpuTimeEnabled() { if (!isThreadCpuTimeSupported() && !isCurrentThreadCpuTimeSupported()) { throw new UnsupportedOperationException( "Thread CPU time measurement is not supported"); } return cpuTimeEnabled; } protected boolean isThreadAllocatedMemoryEnabled() { if (!isThreadAllocatedMemorySupported()) { throw new UnsupportedOperationException( "Thread allocated memory measurement is not supported"); } return allocatedMemoryEnabled; } @Override public long[] getAllThreadIds() { Util.checkMonitorAccess(); Thread[] threads = getThreads(); int length = threads.length; long[] ids = new long[length]; for (int i = 0; i < length; i++) { Thread t = threads[i]; ids[i] = t.getId(); } return ids; } @Override public ThreadInfo getThreadInfo(long id) { long[] ids = new long[1]; ids[0] = id; final ThreadInfo[] infos = getThreadInfo(ids, 0); return infos[0]; } @Override public ThreadInfo getThreadInfo(long id, int maxDepth) { long[] ids = new long[1]; ids[0] = id; final ThreadInfo[] infos = getThreadInfo(ids, maxDepth); return infos[0]; } @Override public ThreadInfo[] getThreadInfo(long[] ids) { return getThreadInfo(ids, 0); } private void verifyThreadIds(long[] ids) { if (ids == null) { throw new NullPointerException("Null ids parameter."); } for (int i = 0; i < ids.length; i++) { if (ids[i] <= 0) { throw new IllegalArgumentException( "Invalid thread ID parameter: " + ids[i]); } } } @Override public ThreadInfo[] getThreadInfo(long[] ids, int maxDepth) { verifyThreadIds(ids); if (maxDepth < 0) { throw new IllegalArgumentException( "Invalid maxDepth parameter: " + maxDepth); } // ids has been verified to be non-null // an empty array of ids should return an empty array of ThreadInfos if (ids.length == 0) return new ThreadInfo[0]; Util.checkMonitorAccess(); ThreadInfo[] infos = new ThreadInfo[ids.length]; // nulls if (maxDepth == Integer.MAX_VALUE) { getThreadInfo1(ids, -1, infos); } else { getThreadInfo1(ids, maxDepth, infos); } return infos; } @Override public void setThreadContentionMonitoringEnabled(boolean enable) { if (!isThreadContentionMonitoringSupported()) { throw new UnsupportedOperationException( "Thread contention monitoring is not supported"); } Util.checkControlAccess(); synchronized (this) { if (contentionMonitoringEnabled != enable) { if (enable) { // if reeabled, reset contention time statistics // for all threads resetContentionTimes0(0); } // update the VM of the state change setThreadContentionMonitoringEnabled0(enable); contentionMonitoringEnabled = enable; } } } private boolean verifyCurrentThreadCpuTime() { // check if Thread CPU time measurement is supported. if (!isCurrentThreadCpuTimeSupported()) { throw new UnsupportedOperationException( "Current thread CPU time measurement is not supported."); } return isThreadCpuTimeEnabled(); } @Override public long getCurrentThreadCpuTime() { if (verifyCurrentThreadCpuTime()) { return getThreadTotalCpuTime0(0); } return -1; } @Override public long getThreadCpuTime(long id) { long[] ids = new long[1]; ids[0] = id; final long[] times = getThreadCpuTime(ids); return times[0]; } private boolean verifyThreadCpuTime(long[] ids) { verifyThreadIds(ids); // check if Thread CPU time measurement is supported. if (!isThreadCpuTimeSupported() && !isCurrentThreadCpuTimeSupported()) { throw new UnsupportedOperationException( "Thread CPU time measurement is not supported."); } if (!isThreadCpuTimeSupported()) { // support current thread only for (int i = 0; i < ids.length; i++) { if (ids[i] != Thread.currentThread().getId()) { throw new UnsupportedOperationException( "Thread CPU time measurement is only supported" + " for the current thread."); } } } return isThreadCpuTimeEnabled(); } protected long[] getThreadCpuTime(long[] ids) { boolean verified = verifyThreadCpuTime(ids); int length = ids.length; long[] times = new long[length]; java.util.Arrays.fill(times, -1); if (verified) { if (length == 1) { long id = ids[0]; if (id == Thread.currentThread().getId()) { id = 0; } times[0] = getThreadTotalCpuTime0(id); } else { getThreadTotalCpuTime1(ids, times); } } return times; } @Override public long getCurrentThreadUserTime() { if (verifyCurrentThreadCpuTime()) { return getThreadUserCpuTime0(0); } return -1; } @Override public long getThreadUserTime(long id) { long[] ids = new long[1]; ids[0] = id; final long[] times = getThreadUserTime(ids); return times[0]; } protected long[] getThreadUserTime(long[] ids) { boolean verified = verifyThreadCpuTime(ids); int length = ids.length; long[] times = new long[length]; java.util.Arrays.fill(times, -1); if (verified) { if (length == 1) { long id = ids[0]; if (id == Thread.currentThread().getId()) { id = 0; } times[0] = getThreadUserCpuTime0(id); } else { getThreadUserCpuTime1(ids, times); } } return times; } @Override public void setThreadCpuTimeEnabled(boolean enable) { if (!isThreadCpuTimeSupported() && !isCurrentThreadCpuTimeSupported()) { throw new UnsupportedOperationException( "Thread CPU time measurement is not supported"); } Util.checkControlAccess(); synchronized (this) { if (cpuTimeEnabled != enable) { // notify VM of the state change setThreadCpuTimeEnabled0(enable); cpuTimeEnabled = enable; } } } protected long getThreadAllocatedBytes(long id) { long[] ids = new long[1]; ids[0] = id; final long[] sizes = getThreadAllocatedBytes(ids); return sizes[0]; } private boolean verifyThreadAllocatedMemory(long[] ids) { verifyThreadIds(ids); // check if Thread allocated memory measurement is supported. if (!isThreadAllocatedMemorySupported()) { throw new UnsupportedOperationException( "Thread allocated memory measurement is not supported."); } return isThreadAllocatedMemoryEnabled(); } protected long[] getThreadAllocatedBytes(long[] ids) { boolean verified = verifyThreadAllocatedMemory(ids); long[] sizes = new long[ids.length]; java.util.Arrays.fill(sizes, -1); if (verified) { getThreadAllocatedMemory1(ids, sizes); } return sizes; } protected void setThreadAllocatedMemoryEnabled(boolean enable) { if (!isThreadAllocatedMemorySupported()) { throw new UnsupportedOperationException( "Thread allocated memory measurement is not supported."); } Util.checkControlAccess(); synchronized (this) { if (allocatedMemoryEnabled != enable) { // notify VM of the state change setThreadAllocatedMemoryEnabled0(enable); allocatedMemoryEnabled = enable; } } } @Override public long[] findMonitorDeadlockedThreads() { Util.checkMonitorAccess(); Thread[] threads = findMonitorDeadlockedThreads0(); if (threads == null) { return null; } long[] ids = new long[threads.length]; for (int i = 0; i < threads.length; i++) { Thread t = threads[i]; ids[i] = t.getId(); } return ids; } @Override public long[] findDeadlockedThreads() { if (!isSynchronizerUsageSupported()) { throw new UnsupportedOperationException( "Monitoring of Synchronizer Usage is not supported."); } Util.checkMonitorAccess(); Thread[] threads = findDeadlockedThreads0(); if (threads == null) { return null; } long[] ids = new long[threads.length]; for (int i = 0; i < threads.length; i++) { Thread t = threads[i]; ids[i] = t.getId(); } return ids; } @Override public void resetPeakThreadCount() { Util.checkControlAccess(); resetPeakThreadCount0(); } @Override public boolean isObjectMonitorUsageSupported() { return jvm.isObjectMonitorUsageSupported(); } @Override public boolean isSynchronizerUsageSupported() { return jvm.isSynchronizerUsageSupported(); } private void verifyDumpThreads(boolean lockedMonitors, boolean lockedSynchronizers) { if (lockedMonitors && !isObjectMonitorUsageSupported()) { throw new UnsupportedOperationException( "Monitoring of Object Monitor Usage is not supported."); } if (lockedSynchronizers && !isSynchronizerUsageSupported()) { throw new UnsupportedOperationException( "Monitoring of Synchronizer Usage is not supported."); } Util.checkMonitorAccess(); } @Override public ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers) { return dumpThreads0(ids, lockedMonitors, lockedSynchronizers, Integer.MAX_VALUE); } public ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth) { if (maxDepth < 0) { throw new IllegalArgumentException( "Invalid maxDepth parameter: " + maxDepth); } verifyThreadIds(ids); // ids has been verified to be non-null // an empty array of ids should return an empty array of ThreadInfos if (ids.length == 0) return new ThreadInfo[0]; verifyDumpThreads(lockedMonitors, lockedSynchronizers); return dumpThreads0(ids, lockedMonitors, lockedSynchronizers, maxDepth); } @Override public ThreadInfo[] dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers) { return dumpAllThreads(lockedMonitors, lockedSynchronizers, Integer.MAX_VALUE); } public ThreadInfo[] dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth) { if (maxDepth < 0) { throw new IllegalArgumentException( "Invalid maxDepth parameter: " + maxDepth); } verifyDumpThreads(lockedMonitors, lockedSynchronizers); return dumpThreads0(null, lockedMonitors, lockedSynchronizers, maxDepth); } // VM support where maxDepth == -1 to request entire stack dump private static native Thread[] getThreads(); private static native void getThreadInfo1(long[] ids, int maxDepth, ThreadInfo[] result); private static native long getThreadTotalCpuTime0(long id); private static native void getThreadTotalCpuTime1(long[] ids, long[] result); private static native long getThreadUserCpuTime0(long id); private static native void getThreadUserCpuTime1(long[] ids, long[] result); private static native void getThreadAllocatedMemory1(long[] ids, long[] result); private static native void setThreadCpuTimeEnabled0(boolean enable); private static native void setThreadAllocatedMemoryEnabled0(boolean enable); private static native void setThreadContentionMonitoringEnabled0(boolean enable); private static native Thread[] findMonitorDeadlockedThreads0(); private static native Thread[] findDeadlockedThreads0(); private static native void resetPeakThreadCount0(); private static native ThreadInfo[] dumpThreads0(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth); // tid == 0 to reset contention times for all threads private static native void resetContentionTimes0(long tid); @Override public ObjectName getObjectName() { return Util.newObjectName(ManagementFactory.THREAD_MXBEAN_NAME); } }
⏎ sun/management/ThreadImpl.java
Or download all of them as a single archive file:
File name: java.management-11.0.1-src.zip File size: 828174 bytes Release date: 2018-11-04 Download
⇒ JDK 11 java.management.rmi.jmod - Management RMI Module
2020-04-30, 97651👍, 0💬
Popular Posts:
JDK 11 jdk.internal.opt.jmod is the JMOD file for JDK 11 Internal Opt module. JDK 11 Internal Opt mo...
maven-core-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Core module. Apache Maven is a software ...
JDK 11 jdk.jlink.jmod is the JMOD file for JDK 11 JLink tool, which can be invoked by the "jlink" co...
What Is HttpComponents commons-httpclient-3.1.j ar?HttpComponents commons-httpclient-3.1.j aris the ...
How to download and install JDK (Java Development Kit) 8? If you want to write Java applications, yo...