我正在尝试生成有关HashMap.put函数的问题。我编写了一个测试代码,它将运行超过100个线程..通过使用jstack或kill我能够获得特定线程的线程转储我的进程..问题是我无法立即捕获线程转储,我希望所有的线程转储都记录在文件中,直到进程结束。是否有任何linux命令或shell脚本可以写入来执行此操作?
答案 0 :(得分:1)
#!/bin/bash
if [ $# -eq 0 ]; then
echo >&2 "Usage: jstackSeries [ <count> [ <delay> ] ]"
echo >&2 " Defaults: count = 10, delay = 1 (seconds)"
exit 1
fi
pid=$1 # required
count=${2:-10} # defaults to 10 times
delay=${3:-1} # defaults to 1 second
while [ $count -gt 0 ]
do
jstack $pid >jstack.$pid.$(date +%H%M%S.%N)
sleep $delay
let count--
echo -n "."
done
请参考:
http://howtodoinjava.com/2012/12/19/how-to-get-thread-dump-in-linux-using-jstack/