最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在windows下揪出java程序占用cpu很高的線程并完美解決

 更新時(shí)間:2021年01月21日 08:55:01   作者:本人純屬虛構(gòu)  
這篇文章主要介紹了在windows下揪出java程序占用cpu很高的線程并完美解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

我的一個(gè)java程序偶爾會(huì)出現(xiàn)cpu占用很高的情況

一直不知道什么原因

今天終于抽時(shí)間解決了

系統(tǒng)是win2003

jvisualvm 和 jconsole貌似都只能看到總共占用的cpu 看不到每個(gè)線程分別占用的cpu呢所以在windows平臺(tái)上要找出到底是哪個(gè)線程占用的cpu還不那么容易,linux用top就簡單多了

最后的解決方法:

1.找到j(luò)ava進(jìn)程對(duì)應(yīng)的pid。

找pid的方法是:打開任務(wù)管理器,然后點(diǎn)擊 "查看" 菜單,然后點(diǎn)擊 "選擇列",把pid勾上,然后就可以在任務(wù)管理器里面看到所有進(jìn)程的pid值了。(也可以用第三步中提到的工具直接查看)

2.然后把java進(jìn)程導(dǎo)出快照。直接運(yùn)行命令。

jstack -l 31372 > c:/31372.stack

我這里是指定把java所有的信息導(dǎo)出到c盤的31372.stack的文件里。

3.在windows下只能查看進(jìn)程的cpu占用率,要查看線程的cpu占用率要借助其他的工具,我這里用的是微軟提供的 Process Explorer v15.3

下載地址http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

下載完后解壓運(yùn)行

右鍵點(diǎn)擊需要查看的進(jìn)程---properties

4.然后選擇 Threads 選項(xiàng)卡,找到占用cpu的線程的tid,比如我這里是 31876 的線程

5.把pid轉(zhuǎn)換成16進(jìn)制,我這里直接用系統(tǒng)自帶的計(jì)算器轉(zhuǎn)換,置于為什么要轉(zhuǎn)換,是因?yàn)橄惹坝胘stack導(dǎo)出的信息里面線程對(duì)應(yīng)的tid是16進(jìn)制的。

最后得到的線程pid的16進(jìn)制的值為 7C84

6.在 c盤的31372.stack文件中查找 7C84

由于是我的程序已經(jīng)該過了,這里沒有異常的東西,所以這里沒有什么異常內(nèi)容。

我的問題沒解決之前,找到到這里的內(nèi)容為:

"Thread-23" prio=6 tid=0x03072400 nid=0x1b68 runnable [0x0372f000]
 java.lang.Thread.State: RUNNABLE
 at com.horn.util.MyEncrypt.encode(MyEncrypt.java:17)
 at com.horn.common.OrderUtil.hisExp(OrderUtil.java:228)
 at com.horn.util.MsgManage.receiveMsg(MsgManage.java:961)
 at com.horn.util.PollMessageThread.run(PollMessageThread.java:74)
 
 Locked ownable synchronizers:
 - None

于是 打開 t com.horn.util.MyEncrypt.encode(MyEncrypt.java:17)

分析了下代碼,問題找到了。

問題代碼為:

// 100-999的隨機(jī)數(shù)
int random = (int) (Math.random() * 1000);
while (random < 100) {
 random = random * 10;
}

這樣票眼看 是沒問題

當(dāng)時(shí)我寫這段代碼也沒注意

關(guān)鍵在于 Math.random()的取值范圍是大于0小于1 是吧?

如果Math.random() 的值為 0.00009以下... 就成死循環(huán)了...

現(xiàn)在修改為了

// 100-999的隨機(jī)數(shù)
int random = new Random().nextInt(900) + 100;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • mongo分布式鎖Java實(shí)現(xiàn)方法(推薦)

    mongo分布式鎖Java實(shí)現(xiàn)方法(推薦)

    下面小編就為大家?guī)硪黄猰ongo分布式鎖Java實(shí)現(xiàn)方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • javaWeb項(xiàng)目部署到阿里云服務(wù)Linux系統(tǒng)的詳細(xì)步驟

    javaWeb項(xiàng)目部署到阿里云服務(wù)Linux系統(tǒng)的詳細(xì)步驟

    這篇文章主要介紹了javaWeb項(xiàng)目部署到阿里云服務(wù)Linux系統(tǒng),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Spring如何基于注解顯式實(shí)現(xiàn)自動(dòng)裝配

    Spring如何基于注解顯式實(shí)現(xiàn)自動(dòng)裝配

    這篇文章主要介紹了Spring如何基于注解顯式實(shí)現(xiàn)自動(dòng)裝配,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring中的AOP面向切面編程詳解

    Spring中的AOP面向切面編程詳解

    這篇文章主要介紹了Spring中的AOP面向切面編程詳解,AOP?即面向切面編程,和?OOP面向?qū)ο缶幊填愃?也是一種編程思想,AOP采取橫向抽取機(jī)制(動(dòng)態(tài)代理),取代了傳統(tǒng)縱向繼承機(jī)制的重復(fù)性代碼,其應(yīng)用主要體現(xiàn)在事務(wù)處理、日志管理、權(quán)限控制等方面,需要的朋友可以參考下
    2024-01-01
  • Servlet的兩種創(chuàng)建方式(xml?注解)示例詳解

    Servlet的兩種創(chuàng)建方式(xml?注解)示例詳解

    這篇文章主要為大家介紹了Servlet的兩種創(chuàng)建方式(xml?注解)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 深入了解Java定時(shí)器中的Timer的原理

    深入了解Java定時(shí)器中的Timer的原理

    這篇文章主要介紹了Java定時(shí)器中的Timer的原理。Timer主要用于Java線程里指定時(shí)間或周期運(yùn)行任務(wù),它是線程安全的,但不提供實(shí)時(shí)性(real-time)保證。接下來就跟隨小編一起深入了解Timer吧
    2022-01-01
  • java線程之join方法的使用介紹

    java線程之join方法的使用介紹

    本篇文章介紹了,java線程之join方法的使用分析,需要的朋友參考下
    2013-05-05
  • Java 中運(yùn)行字符串表達(dá)式的方法

    Java 中運(yùn)行字符串表達(dá)式的方法

    這篇文章主要介紹了Java 中運(yùn)行字符串表達(dá)式的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • spring?data?jpa查詢一個(gè)實(shí)體類的部分屬性方式

    spring?data?jpa查詢一個(gè)實(shí)體類的部分屬性方式

    這篇文章主要介紹了spring?data?jpa查詢一個(gè)實(shí)體類的部分屬性方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 使用Easyexcel實(shí)現(xiàn)不同場景的數(shù)據(jù)導(dǎo)出功能

    使用Easyexcel實(shí)現(xiàn)不同場景的數(shù)據(jù)導(dǎo)出功能

    這篇文章主要為大家詳細(xì)介紹了如何在不同場景下使用Easyexcel實(shí)現(xiàn)數(shù)據(jù)導(dǎo)出功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03

最新評(píng)論

水富县| 灌阳县| 衡水市| 吉木萨尔县| 云龙县| 吉林市| 尚义县| 玉山县| 吉水县| 济南市| 乌海市| 镇巴县| 永仁县| 即墨市| 响水县| 房产| 奉节县| 遂昌县| 长春市| 门源| 万盛区| 商城县| 江都市| 项城市| 英吉沙县| 迁安市| 宣威市| 交口县| 宁明县| 无锡市| 隆昌县| 黄骅市| 钦州市| 海淀区| 磴口县| 新野县| 昆明市| 山阴县| 闽清县| 紫金县| 色达县|