2017-04-27 64 views
1

我正在分析我的JAVA應用程序來查找誰在使用cpu。基於我的cpu快照視圖,我發現NetIO消耗了我大部分的cpu。Jprofiler9 NetIO狀態的真正含義是什麼?

  1. 但是,這種狀態真的意味着什麼?
  2. 這個狀態的線程是否真的消耗CPU?
  3. 該狀態是映射到JAVA VM線程狀態還是本地線程狀態?

enter image description here

編輯:基於Java線程轉儲的NetIO線程實際上是RUNNABLE狀態。

回答

0

但這種狀態真的意味着什麼?

它跟蹤網絡調用。它可能是等待狀態的一部分,但那不太有用。

此狀態下的線程是否真的消耗CPU?

在此線程狀態下,CPU負載通常較低。

此狀態映射到JAVA VM線程狀態還是本地線程狀態?

不,它完全基於在JRE的運行時庫中進行網絡調用的方法的檢測。

+0

但是我確實面臨着一個很高的cpu負載問題,該應用使得很多blockingIO調用('socketRead0'),所以如果這個NetIO實際上是vm中等待io的線程,它就會解釋。 – hakunami

相關問題