命令列分析java線程CPU佔用,命令列java線程cpu

來源:互聯網
上載者:User

命令列分析java線程CPU佔用,命令列java線程cpu


1.使用top命令找出佔用cpu最高的JAVA進程pid號

2. 找出佔用cpu最高的線程:

top -Hppid  -d 1 -n 1  

3. 列印占CPU最高JAVA進程pid的堆棧資訊

jstack pid > /tmp/stacktrace.log

4. 把占CPU最高線程號碼換算成16進位到stacktrace.log中尋找對應線程16進位值找到線程代碼。



java獲得某線程對cpu的佔用率

blog.csdn.net/...9.aspx

這裡有你需要的
 
在java怎判斷線程是否正在佔用CPU資源

Java平台從開始就被設計成為多線程環境。在你的主程式執行的時候,其它作業如片段收集和事件處理則是在後台進行的。本質上,你可以認為這些作業是線程。它們正好是系統管理線程,但是無論如何,它們是線程。線程使你能夠定義相互獨立的作業,彼此之間互不干擾。系統將交換這些作業進或出CPU,這樣(從外部看來)它們好象是同時啟動並執行。
在你需要在你的程式中處理多個作業時,你也可以使用多個進程。這些進程可以是你自己建立的,你也可以操縱系統線程。

  你進行這些多作業處理,要使用幾個不同的類或介面:

   java.util.Timer類
   javax.swing.Timer類
   Thread類
   Runnable介面

  對於簡單的作業,通常需要重複的,你可以使用java.util.Timer類告訴它“每半秒鐘做一次”。注意:大多數系統常式是使用毫秒的。半秒鐘是500毫秒。

  你希望Timer實現的任務是在java.util.TimerTask執行個體中定義的,其中啟動並執行方法包含要執行的任務。這些在Hi類中進行了示範,其中字串“Hi”重複地被顯示在螢幕上,直到你按Enter鍵。

import java.util.*;

public class Hi {
public static void main(String args[])
throws java.io.IOException {
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Hi");
}
};
Timer timer = new Timer();
timer.schedule(task, 0, 500);
System.out.println("Press ENTER to stop");
System.in.read(new byte[10]);
timer.cancel();
}
}
  Java Runtime Environment工作的方式是只要有一個線程在運行,程式就不退出。這樣,當取消被調用,沒有其它線程在運行了,則程式退出。有一些系統線程在運行,如片段收集程式。這些系統線程也被稱為後台線程。後台線程的存在不影響運行環境被關閉,只有非後台線程保證運行環境不被關閉。
相關資料:www.yesky.com/123/1738123.shtml
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.