jstack中的tid到底是什么意思呢

我們經(jīng)常見到類似的jstack信息

"main" #1 prio=5 os_prio=31 tid=0x00007fa63900c800 nid=0x1703 waiting on condition [0x0000700000219000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at Test.main(Test.java:5)

nid=0x1703 nid我們都知道是其實(shí)就是進(jìn)程id。
那tid呢,tid=0x00007fa63900c800 還這么大的一個數(shù)字


有人說這個就是java自己的線程id啊,Thread.getId()啊
然后我就測試了下,

 public static void main(String[] args) throws Exception {
        System.out.println("-------------"+Thread.currentThread().getId());

結(jié)果是-------------1

多創(chuàng)建幾個線程看看,線程id是9啊,10啊,規(guī)律就是從1開始一直遞增的。

和tid=0x00007fa63900c800 這么大的數(shù)字完全對不上啊。


同事給我一個提示,這是不是個內(nèi)存地址啊。

好像是哦,正好是16個16進(jìn)制,轉(zhuǎn)成2進(jìn)制就是16*4=64位,內(nèi)存地址也是64位。

然后就是使用hsdb工具來查看了:

image.png
image.png

確實(shí)是個內(nèi)存地址,但是不是線程棧開始的位置,而是比較靠后的位置。

這個位置具體是什么意思就后面有機(jī)會再看了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容