處于RUNNABLE狀態的Java線程未真正運行

最近,我在Java應用程序服務器安裝上進行了分析/調整,以識別瓶頸并修復它們。 在此過程中(調整),最常見的操作是在系統加載時檢索許多線程轉儲。 請記住,重載(在某些情況下)可能會產生副作用,可能會導致我們得出錯誤的結論。 因此,“控制”負載比實際重負載更可取。
當系統處于加載狀態時,您會注意到許多Java線程處于RUNNABLE狀態,但它們并未真正運行。 他們正在等待“ 某物 ”。
導致線程即使處于RUNNABLE狀態也要等待的最常見原因如下:
  1. CPU資源不足 :當運行的線程多于虛擬CPU時,上下文切換,內核,OS作業和系統的其他進程會有延遲是正常的。
  2. RAM不足 :如果您的RAM不足,則您的系統將使用swap,這總是一個問題。
  3. I / O :當線程處于read()或write()調用中并等待數據寫入或讀取時,該線程處于RUNNABLE狀態,但實際上并未運行。
  4. 網絡慢 :這與#3有關,因為網絡慢得多,它將導致與網絡操作有關的“正在運行”線程的較長延遲。
  5. 流程優先級 :流程可以具有不同的優先級。 如果JVM進程以低優先級運行,則其他進程將在CPU中更頻繁地運行。 您可以使用top (GNU Linux), prstat (Solaris), 任務管理器 (Windows)之類的工具來執行此操作。
  6. 垃圾收集(GC) :運行GC時,JVM的所有線程(GC線程除外)在某些地方(世界停止)都處于凍結狀態。 在這些時候,GC正在刪除無用的引用對象,因此釋放了堆的可用內存大小(但僅限于此)。 我們必須使用這樣的策略(例如CMS或G1),以最小化停靠點的頻率和持續時間。
完全由JVM引起的唯一原因是最后一個(GC活動)。 所有其他方面主要取決于操作系統和硬件。 因此,我們還必須始終監視系統(操作系統和硬件),而不僅僅是JVM。
您必須記住,Java不使用/遵循其自己的線程模型。 此外,當前的JVM(熱點)使用本機OS線程,并且線程調度由底層OS實現。
參考:處于Java集成和源博客的優點的 JCG合作伙伴 Adrianos Dadis并沒有真正運行處于RUNNABLE狀態的Java Thread 。

翻譯自: https://www.javacodegeeks.com/2012/08/java-thread-at-runnable-state-is-not.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/371991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2.3 關系完整性

關系模型的完整性規則是對關系的某種約束條件。 也就是說關系的值隨著時間變化時應該滿足一些約束條件。 (這些約束條件實際上是現實世界的要求。任何關系在任何時刻都要滿足這些語義約束) 關系模型中有三類完整性約束: 實體完整性 &#xff…

Android 顏色大全color.xml

使用方法&#xff1a; 將color.xml文件拷到res/values目錄下后我們只需要R.xml文件名稱.name名稱就可以調用了(例如:R.color.red) <?xml version"1.0" encoding"utf-8"?><resources> <color name"white">#FFFFFF</color&…

鴻蒙系統華為論壇,2020中國汽車論壇上 華為三大鴻蒙車載OS系統

在今天的2020中國汽車論壇上&#xff0c;華為公布了三大鴻蒙車載OS系統&#xff0c;同時還宣布已經有大量合作伙伴基于鴻蒙OS進行開發。根據智能汽車解決方案BU總裁王軍所說&#xff0c;這三大鴻蒙OS分別是——鴻蒙座艙操作系統HOS、智能駕駛操作系統AOS和智能車控操作系統VOS&…

只讀ViewObject和聲明性SQL模式

介紹 聲明式SQL模式被認為是基于實體的視圖對象的最有價值的優點之一。 在此模式下&#xff0c;根據UI中顯示的屬性在運行時生成VO的SQL。 例如&#xff0c;如果某個頁面包含一個只有兩列EmployeeId和FirstName的表&#xff0c;則查詢將生成為“從Employees中選擇Employee_ID&a…

android 360加固 例子,[原創]利用VirtualApp實現360加固的soHook簡單例子

簡單demo&#xff0c;為拋磚引玉吧&#xff01;360的加固我們先寫一個最簡單的so&#xff0c;帶導出函數。這已經足夠簡單了&#xff0c;界面上打印這個值。運行起來就這樣。簡單的簡直過分。好了&#xff0c;現在我們讓360加固一下。拿下來自己簽名下&#xff0c;安裝好&#…

scrapy架構解析

轉載于:https://www.cnblogs.com/tianboblog/p/6986695.html

華為怎么升級Android11,華為EMUI 11/安卓11升級名單曝光 快來看看你的手機是否支持...

華為EMUI 11/安卓11升級名單曝光 快來看看你的手機是否支持2020年02月10日 16:29作者&#xff1a;NJNR205文章出處&#xff1a;泡泡網原創分享2月10日消息&#xff0c;據外媒報道&#xff0c;華為將于今年3月份的華為開發者大會(HDC)上正式宣布新一代EMUI 11。眾所周知&#xf…

Scala安裝及開發環境搭建

最近想學習下scala&#xff0c;為后面轉大數據做一些沉淀。 1. 首先保證jdk已經成功安裝 2. 去官網下載scala安裝程序 http://www.scala-lang.org/download/all.html 會列出不同的版本. 3. 安裝scala 安裝路徑記得不要有空格否則可能會出現以下這種狀況&#xff0c;還有&am…

簡單利用HTTP中的PUT協議拿下SHELL

第一次用方法拿shell,之前遇到的都是沒有寫入權限的。 站太辣雞&#xff0c;純粹練手&#xff0c;就不打碼了。 此次實戰會用到的HTTP請求方法&#xff1a; OPTIONS&#xff0c;PUT&#xff0c;MOVE/COPPY * 戰前準備 0x01 什么是OPTIONS方法&#xff1f; 此方法用于請求獲得由…

JSF – PrimeFaces和休眠集成項目

本文介紹了如何使用JSF&#xff0c;PrimeFaces和Hibernate開發項目。 下面是一個示例應用程序&#xff1a; 二手技術&#xff1a; JDK 1.6.0_21 Maven的3.0.2 JSF 2.0.3 PrimeFaces 2.2.1 休眠3.6.7 MySQL Java連接器5.1.17 MySQL 5.5.8 Apache Tomcat 7.0 第1步&#xff1…

android q升級名單,華為升級 Android Q 機型名單敲定 陣容龐大

中關村在線消息&#xff1a;在 5 月份的谷歌 I/O 大會上&#xff0c;谷歌公布了一系列支持下一代安卓系統 Android Q 的機型。除了谷歌自家的 pixel 手機之外&#xff0c;還包括 9 款國產手機&#xff0c;其中華為 Mate20 Pro 成為華為首款支持原生安卓的機型。這也讓華為手機的…

mvc UrlHelper

何謂Helper,其實就是在View中為了實現一些靈活功能而寫的方法組。 其實ASP.NET MVC的View是Aspx的頁面,本身可以聲明定義方法,那為什么要有Helper呢&#xff1f; 其實無非是將界面與邏輯分離,而且Asp.net MVC也并不只支持Aspx一種View&#xff08;還可以擴展出來很多&#xff0…

Mockito –使用全局配置的SmartNull在NPE上提供更好的錯誤消息

編寫Mockito參考卡后&#xff0c;我有機會仔細研究了Mockito不太流行但非常有用的功能。 其中一些過于先進或太稀少&#xff0c;無法在refcard中進行描述&#xff0c;因此應簡短說明。 其中之一就是SmartNull。 當前&#xff0c;非空方法返回適用于已知類型&#xff08;例如&am…

java使用js引擎時,關于時間的問題getTime()獲取為NAN的問題

在java中使用js引擎時&#xff0c;想要去獲取兩個時間的相差的天數&#xff0c;查找網上的辦法&#xff1a; var beginMonth parseInt(beginTime.substring(6,8),10);//2016-05-17 18:51:33 var beginYear parseInt(beginTime.substring(1,5),10); var beginDate parseInt(b…

python——成語接龍小游戲

小試牛刀的簡易成語接龍。 思路—— 1、網上下載成語字典的txt版本 2、通過python進行處理得到格式化的成語&#xff0c;并整理成字典&#xff08;python字典查找速度快&#xff09; 3、python程序&#xff0c;查找 用戶輸入的最后一個字和字典里首字一致的&#xff0c;放入列表…

計劃B? 那是計劃N…沒什么。 拼圖于2015年問世

真是一天 當典型的歐洲人逐漸破產時&#xff0c;美國的人們開始喝咖啡。 這就是為什么我在Mark Reinhold最近的新聞中睡個好覺的原因。 他在題為“ Project Jigsaw&#xff1a;火車晚點 ”的帖子中建議將Project Jigsaw推遲到下一個版本Java 9。 在最近的會議和博客文章上&…

C# 訪問MongoDB 通用方法類

using MongoDB.Driver; using System; namespace MongoDBDemo { public class MongoDb { public MongoDb(string host,string timeOut) { this.CONNECT_TIME_OUT timeOut; this.MONGO_CONN_HOST host; } /// <summary> /// 數據庫所在主機 /// </sum…

html網頁背景圖片平鋪代碼,jQuery圖片平鋪效果制作網頁背景圖片平鋪代碼

插件描述&#xff1a;jQuery圖片平鋪效果制作網頁背景圖片平鋪代碼調用JS文件調用插件方法$(function(){// 插件初始化$(img).jqthumb({classname : jqthumb, // 類名. 默認是 jqthumbwidth : 100%, // 新的圖像裁剪后寬度. 默認是 100px.height : 100%, // 新的圖像裁剪后高度…

使用保險絲結構管理MQ和ESB的大型部署,第I部分

FuseSource最近發布了ActiveMQ和ServiceMix發行版的企業版。 其中一些重要功能包括增量修補 &#xff0c; 自定義平臺安裝程序和第三方驗證 。 新企業版附帶的最酷的功能之一是Fuse Fabric和一些新工具 &#xff0c;使您可以利用Fabric管理環境。 Fabric允許您通過一些命令行或…

Mybatis參數傳遞及返回類型

mybatis參數傳遞&#xff1a; 單個參數&#xff1a;不做特殊處理 #{參數名}&#xff1a;取出參數值 多個參數&#xff1a;做特殊處理 多個參數會被封裝成一個map key&#xff1a;param1 ... paramN value&#xff1a;傳入的參數…