jstack.js
来自「一个小公司要求给写的很简单的任务管理系统。」· JavaScript 代码 · 共 59 行
JS
59 行
/* * This file defines 'jstack' function to print stack traces of * threads.'jstack' function which can be called once or periodically * from a timer thread (calling it periodically would slow down the target * application). To call this once, just call 'jstack()' in script * console prompt. To call jtop in a timer thread, you can use * * var t = setTimeout(function () { jstack(print); }, 5000); * * The above call prints threads in sorted order for every 5 seconds. * The print output goes to OS console window from which jconsole was * started. The timer can be cancelled later by clearTimeout() function * as shown below: * * clearTimeout(t); *//** * print given ThreadInfo using given printFunc */function printThreadInfo(ti, printFunc) { printFunc(ti.threadId + " - " + ti.threadName + " - " + ti.threadState); var stackTrace = ti.stackTrace; for (var i in stackTrace) { printFunc("\t" + stackTrace[i]); }}/** * print stack traces of all threads. * * @param printFunc function called to print [optional] * @param maxFrames maximum number of frames to print [optional] */function jstack(printFunc, maxFrames) { // by default use 'echo' to print. Other choices could be // 'print' or custom function that writes in a text file if (printFunc == undefined) { printFunc = echo; } // by default print 25 frames if (maxFrames == undefined) { maxFrames = 25; } var tmbean = newPlatformMXBeanProxy( "java.lang:type=Threading", java.lang.management.ThreadMXBean); var tids = tmbean.allThreadIds; var tinfos = tmbean["getThreadInfo(long[],int)"](tids, maxFrames); for (var i in tinfos) { printThreadInfo(tinfos[i], printFunc); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?