UPDATE table1 t1
SET t1.value =
(select t2.CODE from table2 t2
where t1.value = t2.DESC)
WHERE t1.UPDATETYPE='blah';
Я считаю, что JConsole ( архивная ссылка ) действительно обеспечивает такой вид информации через плагин
Он использует функцию ThreadMXBean getThreadCpuTime ().
Что-то вроде строки:
long upTime = runtimeProxy.getUptime();
List<Long> threadCpuTime = new ArrayList<Long>();
for (int i = 0; i < threadIds.size(); i++) {
long threadId = threadIds.get(i);
if (threadId != -1) {
threadCpuTime.add(threadProxy.getThreadCpuTime(threadId));
} else {
threadCpuTime.add(0L);
}
}
int nCPUs = osProxy.getAvailableProcessors();
List<Float> cpuUsageList = new ArrayList<Float>();
if (prevUpTime > 0L && upTime > prevUpTime) {
// elapsedTime is in ms
long elapsedTime = upTime - prevUpTime;
for (int i = 0; i < threadIds.size(); i++) {
// elapsedCpu is in ns
long elapsedCpu = threadCpuTime.get(i) - prevThreadCpuTime.get(i);
// cpuUsage could go higher than 100% because elapsedTime
// and elapsedCpu are not fetched simultaneously. Limit to
// 99% to avoid Chart showing a scale from 0% to 200%.
float cpuUsage = Math.min(99F, elapsedCpu / (elapsedTime * 1000000F * nCPUs));
cpuUsageList.add(cpuUsage);
}
}
с использованием java.lang.management.ThreadMXBean . Как получить ThreadMXBean:
ThreadMXBean tmxb = ManagementFactory.getThreadMXBean();
, затем вы можете запросить, сколько потребляет конкретный поток, используя:
long cpuTime = tmxb.getThreadCpuTime(aThreadID);
Надеюсь, это поможет.
Несмотря на то, что это зависит от платформы, я считаю, что вам нужен ThreadMXBean: http: / /java.sun.com/j2se/1.5.0/docs/api/java/lang/management/ThreadMXBean.html. Вы можете использовать метод getThreadUserTime, например, чтобы получить то, что вам нужно. Чтобы проверить, поддерживает ли ваша платформа измерение ЦП, вы можете вызвать isThreadCpuTimeSupported ().
Действительно, объект ThreadMXBean обеспечивает необходимую вам функциональность (однако он может быть реализован не на всех виртуальных машинах).
В JDK 1.5 была демонстрационная программа, делающая именно то, что вам нужно. Он был в папке demo / management и назывался JTop.java
. К сожалению, его нет в Java6. Может быть, вы можете найти на Google или скачать JDK5.