A. linux有一個java進程cpu達到100,怎麼回事,程序進程多
cpu使用率高的原因及解決方法:
第一、殺毒軟體,常見的金山、瑞星殺毒軟體會對網頁、插件等進行監控,這樣就增大了系統負擔,自然也就會造成cpu使用率高。
第二、驅動不達標,現在人們使用的驅動有幾大一部分是屬於測試版的驅動,這一類驅動並不合格,它可以造成CPU100%的使用率,而且不容易發覺。
第三、病毒木馬,病毒在系統內部復制,必然造成極高的cpu佔有率;
第四、網路鏈接,這是最直接的客觀原因,主要是網路連接不穩定。
第五、啟動項太多,一般來說開機啟動項過多,就會增加cpu的使用率,增加其荷載。
第六、桌面盡量少放文件,在桌面上放過多的文件,極大的佔用cpu,造成使用率過高。
第七、軟體本身需要佔有很高的CPU,比如一覽器;有時有的軟體和系統會有點不兼容。
第八、「svchost」進程影響,svchost.exe是系統的一個核心進程,svchost.exe有時非常令人頭痛,如果看到某個svchost.exe佔用很大CPU,這時可以去下aports或者fport來檢察其對應的程序路徑,看下是不是有程序調用svchost.exe。
第九、右擊文件100%扥使用率,這個也是非常常見,在官方解釋也很有意思。
第十、cpu溫度過高,證明cpu本身就是出於不正常運行,自然也就會導致異常。
第十一、word文件過大,cpu對其拼寫和語法檢查過度。
B. java 多線程 cpu利用率100%問題,我做了一個程序,10個線程,不到一分鍾,cpu就100%了,怎麼解決。
一般一個cpu核心可以搭載兩個線程,你根據核心去搭載線程,不要亂放線程。
還有你有10個線程同時跑耗時操作最少也要4核的cpu,你可以減少線程或者減少線程中的耗時操作。
如果你是解碼或者壓縮程序的話那麼cpu100%也很正常,如果是socket網路連接你可以看看windows iocp,linux epoll的實現。