導航:首頁 > 編程語言 > java獲取線程id

java獲取線程id

發布時間:2022-04-27 15:43:53

java怎麼得到當前線程的啟動線程id

publicclass線程id

{

publicstaticvoidmain(String[]args)

{

System.out.println(" ==========多線程怎麼查看當前線程id========== ");

init();

}//初始化!

privatestaticvoidinit()

{

for(inti=0;i<2;i++)

{

newThread(newTestRunnable()).start();

}

}

}

{

//簡單測試直接用了靜態,偷懶了!

privatestaticinti=10;

publicvoidrun()

{

show();

}

synchronizedvoidshow()

{

while(i>=1)

System.out.println("當前執行的線程Id是:"+Thread.currentThread().getName()+"---->"+i--+" ");

}

}

② java 多線程怎麼查看當前線程id

publicclass線程id
{
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========多線程怎麼查看當前線程id========== ");
init();
}//初始化!
privatestaticvoidinit()
{
for(inti=0;i<2;i++)
{
newThread(newTestRunnable()).start();
}
}
}


{
//簡單測試直接用了靜態,偷懶了!
privatestaticinti=10;
publicvoidrun()
{
show();
}
synchronizedvoidshow()
{
while(i>=1)
System.out.println("當前執行的線程Id是:"+Thread.currentThread().getName()+"---->"+i--+" ");
}
}

③ 在java中可否使用線程名或其ID號獲取其引用

其實你問的應該是為什麼直接寫Thread。

先看下api上如此寫:

currentThread

public static Thread currentThread()

返回對當前正在執行的線程對象的引用。

可見這時個靜態方法,你這么理解更好點:你在哪個線程調用的我(currentThread),我就給你返回哪個線程。跟父子其實沒有關系的,你在父中調用我,我就返回你說的父線程,你在子調用我就返回子線程,你在main主線程調用,我就返回主線程。也就是說你cpu正在運行哪個線程。如圖:

④ Java線程getID()的困惑

你用getName方法就是從0開始了,一個程序中還有其他線程在運行,例如執行main方法的主線程,垃圾回收機制啥的,所以你創建的這些線程不會是從0開始的。

⑤ Java如何獲取正在運行的線程的Id

使用:Thread.currentThread().getName() 就可以了

比如會輸出:pool-1-thread-7

⑥ JAVA根據線程ID,如何根據這個ID 停止一個線程

應該能通過ID拿到那個線程對象的吧。然後再通過改變循環條件就能停止線程。只要runnable里的循環停了線程也就停了。

⑦ 這段java 多線程代碼為什麼id是1的線程一直在等待

從代碼來看,每個線程的o都不是同一個。1線程的o.wait()後,只執行了2線程的o.notifyAll()。所以1線程會一直處於等待中。如果要達到你的要求,修改構造函數,去掉o = new Object();這句。因為這句會在每次初始化一個新線程時,改變o的指向。

⑧ java中可以根據線程名而不是id獲得想要的線程嗎

可以的。
但是要先獲取線程組,然後遍歷線程組樹,獲取根線程組,然後再遍歷所有線程,並分別判斷所有的線程的id或者name,也就是說你可以通過id或者name來獲取一個線程。

⑨ java 中thread 獲取線程id為什麼默認從10開始

源碼中分析線程的id是從0開始的

⑩ Java 中怎麼獲取一份線程 mp 文件

當伺服器掛起,崩潰或者性能底下時,就需要抓取伺服器的線程堆棧(Thread Dump)用於後續的分析.

Thread mp提供了當前活動的線程的快照.它提供了JVM中所有Java線程的棧跟蹤信息

有很多方式可用於獲取Thread Dump,一些是操作系統特定的命令.


Windows:

1. 轉向伺服器的標准輸出窗口並按下Control + Break組合鍵,之後需要將線程堆棧復制到文件中

UNIX/ Linux

首先查找到伺服器的進程號(process id),然後獲取堆棧.

1. ps –ef| grep java

2. kill -3 <pid>

注意一定要謹慎,一步不慎就可能讓伺服器進程被殺死!


JDK自帶命令行工具獲取PID並做ThreadDump:

1. jps

2.jstack <pid>

使用JVisualVM:

Threads標簽頁 →ThreadDump按鈕


1. webLogic.Admin工具

a.打開命令提示符,通過運行<DOMAIN_HOME>/bin/setDomain.env設置相關類路徑

b.執行下面的命令

java weblogic.Admin -url t3://localhost:7001 -username weblogic -password weblogic1 THREAD_DUMP

注意: Thread Dump會列印到標准輸出,如nohup日誌或者進程窗口.

2.使用 Admin Console

a.登錄Admin Console ,點擊對應的伺服器

b.點擊ServeràMonitoringàThreads

c.點擊: Dump Thread Stack按鈕

3.使用WLST (WebLogic Scripting Tool)

connect(『weblogic』,'weblogic1』,』t3://localhost:7001』)

cd(『Servers』)

cd(『AdminServer』)

threadDump()

disconnect()

exit()

注意:線程堆棧將會保存在運行wlst的當前目錄下.

4.使用utils.ThreadDumper

用法:

C:eawlserver_10.3serverlib>java -cp weblogic.jar utils.ThreadDumper

Broadcast Thread mps disabled: must specify weblogic.debug.mpThreadAddr and

weblogic.debug.mpThreadPort

Exception in thread "main" java.lang.IllegalArgumentException: Port out of range

:-1

at java.net.DatagramPacket.setPort(Unknown Source)

at java.net.DatagramPacket.<init>(Unknown Source)

at java.net.DatagramPacket.<init>(Unknown Source)

at utils.ThreadDumper.sendDumpMsg(ThreadDumper.java:124)

at utils.ThreadDumper.main(ThreadDumper.java:145)

5.如果伺服器是作為Windows服務的方式運行,請運行下列命令:

WL_HOMEineasvc -mp -svcname:service-name


$JAVA_

閱讀全文

與java獲取線程id相關的資料

熱點內容
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825
安卓為什麼軟體要隱私 瀏覽:83
虛擬主機管理源碼 瀏覽:811
java圖形圖像 瀏覽:230
單片機輸出口電平 瀏覽:486
java配置資料庫連接 瀏覽:479
java多態的體現 瀏覽:554
java的split分隔符 瀏覽:128
跪著敲代碼的程序員 瀏覽:238
web和php有什麼區別 瀏覽:120
加密的電梯卡怎麼復制蘋果手機 瀏覽:218
warez壓縮 瀏覽:137
黑馬程序員培訓機構官網天津 瀏覽:904
mainjavasrc 瀏覽:58
如何買伺服器挖礦 瀏覽:292
php批量上傳文件夾 瀏覽:560
安卓固件怎麼更新 瀏覽:169