当前位置: 首页 > news >正文

聊城建设局网站网站空间怎么弄

聊城建设局网站,网站空间怎么弄,百度推广在哪里,中山专业外贸网站开发Tags : jstack日志发表时间#xff1a;2019-03-17 23:53:19在分析线上问题时常使用到jstack 命令将当时Java应用程序的线程堆栈dump出来。面对jstack 日志#xff0c;我们如何查看#xff1f;首先要清楚线程的状态线程的状态有#xff1a;new、runnable、running、waiting、…Tags : jstack日志发表时间2019-03-17 23:53:19在分析线上问题时常使用到jstack 命令将当时Java应用程序的线程堆栈dump出来。面对jstack 日志我们如何查看首先要清楚线程的状态线程的状态有new、runnable、running、waiting、timed_waiting、blocked、dead线程状态变迁图各状态说明New: 当线程对象创建时存在的状态此时线程不可能执行Runnable当调用thread.start()后线程变成为Runnable状态。只要得到CPU就可以执行Running线程正在执行Waiting执行thread.join()或在锁对象调用obj.wait()等情况就会进该状态表明线程正处于等待某个资源或条件发生来唤醒自己Timed_Waiting执行Thread.sleep(long)、thread.join(long)或obj.wait(long)等就会进该状态与Waiting的区别在于Timed_Waiting的等待有时间限制Blocked如果进入同步方法或同步代码块没有获取到锁则会进入该状态Dead线程执行完毕或者抛出了未捕获的异常之后会进入dead状态表示该线程结束其次对于jstack日志我们要着重关注如下关键信息Deadlock表示有死锁Waiting on condition等待某个资源或条件发生来唤醒自己。具体需要结合jstacktrace来分析比如线程正在sleep网络读写繁忙而等待Blocked阻塞 Waiting on monitor entry在等待获取锁in Object.wait()获取锁后又执行obj.wait()放弃锁对于Waiting on monitor entry 和 in Object.wait()的详细描述Monitor是 Java中用以实现线程之间的互斥与协作的主要手段它可以看成是对象或者 Class的锁。每一个对象都有也仅有一个 monitor。从下图中可以看出每个 Monitor在某个时刻只能被一个线程拥有该线程就是 Active Thread而其它线程都是 Waiting Thread分别在两个队列 Entry Set和 Wait Set里面等候。在 Entry Set中等待的线程状态是 Waiting for monitor entry而在 Wait Set中等待的线程状态是 in Object.wait()最后通过示例来实践一下示例一描述 Blocked 和 Waiting to lock执行后程序输出Thread[main,5,main]说明主线程先进入同步代码块获取到thread2对象上的锁。通过jstack输出结果先说明下日志格式thread2为线程名称在平时创建线程或线程池时请务必取一个见明之义的线程名称方便排查问题prio6线程优先级不用关心tid0x0000000006540800线程id不用关心nid0x2be4操作系统映射的线程id, 非常关键后面再使用jstack时补充waiting for monitor entry表示线程正在等待获取锁0x0000000006dbf000线程栈起始地址从jstack日志中可以看到主线程获取到thread2对象上的锁因此正在执行sleep操作状态为TIMED_WAINTING, 而thread2由于未获取到thread2对象上的锁因此处于BLOCKED状态。再细看thread2 正在waiting to lock 0x00000000d719d280即试图在地址为0x00000000d719d280所在的对象获取锁而该锁却被main线程占有(locked 0x00000000d719d280)。main线程正在waiting on condition说明正在等待某个条件触发由jstacktrace来看此线程正在sleep。经验如果在jstack日志发现大量的线程在waiting to lock 某个地址只要能查到哪个线程获取到锁就可以方便定位问题了示例二描述waiting on condition]jstack日志输出结果从日志中可以看到main线程的状态是Waiting正在waiting on condition来唤醒自己。结合jstackstrace日志来看parking to wait for 0x00000000d719ba70 (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)说明在调用ArrayBlockingQueue.put()阻塞了。示例三描述Object.wait()程序输出结果Thread[thread2,5,main]Thread[main,5,main]说明线程thread2先进入同步代码块获取到thread2对象上的锁。jstack日志输出结果可以看出线程thread2的状态是Waiting, 正在in Object.wait()。表明该线程在获取到对象锁后调用obj.wait()方法放弃了锁进入了Wait Set队列。...阅读原文
http://www.zqtcl.cn/news/841099/

相关文章:

  • 全屏网站模板制作教程吴江建设局房产网站
  • 浠水网站建设漳州找人做网站要求哪些
  • 做网站需要前台和后台吗公众号制作要求
  • 做一个网站 如何盈利模式招聘网站排行榜2021
  • 免费做网站网站有人哪些c 网站开发网易云课堂百度云下载
  • 高端品牌网站设计欣赏扬中网站建设包括哪些
  • 手机怎么访问微网站网络运营商电话
  • 怎么成立网站战争局势最新消息
  • 嘉定网站设计制作报价crm系统营销
  • 一个网站做几个关键词怎么样子做网站
  • 关于做网站的创新创业策划书怎么进网站后台管理系统
  • 品牌型网站开发wap网站开发工具
  • 网站改版设计微信淘宝购物券网站是怎么做的
  • 网站建设基本流程心得网站设计开发报价
  • 泉州网站建设网站制作电商网站建设需要
  • 沈阳工程建设信息网深圳seo网站排名优化
  • wordpress仿dz长沙seo网站优化
  • 西宁做网站公司电话关键词快速排名怎么做
  • 昆山网站建设秦皇岛淘宝关键词推广
  • 建设娱乐网站的要求微网站开发多少钱
  • 海港区网站快排seo网站怎么添加流量
  • 肇庆做网站aspaccess做网站
  • 郑州网站建设索q479185700wordpress输出用户中心链接
  • 网站重要三要素网站建设 找vx cp5173
  • 河北网站开发价格三个字简洁的公司名称
  • 网站建设案例分析wordpress 页面固定
  • 杭州网站备案机械加工网站有哪些
  • 360网站运营wordpress 免费版广告
  • 龙文网站建设有域名可以自己做网站吗
  • 东莞优化网站建设肥猫网站建设