0

HashMap.put 関数に関する問題を生成しようとしています。100 を超えるスレッドを実行するテスト コードを作成しました。jstack または kill を使用して、プロセスの特定のスレッドのスレッド ダンプを取得できます。 .問題は、スレッド ダンプをすぐにキャプチャできないことです。プロセスが終了するまで、すべてのスレッド ダンプをファイルに記録したいのですが、これを行うために書き込むことができる Linux コマンドまたはシェル スクリプトはありますか?

4

1 に答える 1

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/

于 2012-12-20T05:58:41.720 に答える