最近我们线上有个应用服务器有点上头,CPU总能跑到99%,我寻思着它流量也不大啊,为啥能把自己整这么累?于是我登上这台服务器,看看它到底在干啥! ...
分类:
编程语言 时间:
2020-06-11 19:30:33
阅读次数:
56
一、前言 锁的状态总共有四种,级别由低到高依次为:无锁、偏向锁、轻量级锁、重量级锁,这四种锁状态分别代表什么,为什么会有锁升级?其实在 JDK 1.6之前,synchronized 还是一个重量级锁,是一个效率比较低下的锁,但是在JDK 1.6后,Jvm为了提高锁的获取与释放效率对(synchron ...
分类:
其他好文 时间:
2020-06-11 16:33:29
阅读次数:
687
链路追踪工具 简介: Zipkin:是Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用,特点是轻量,使用部署简单。 Pinpoint:是韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。特点是支持多种插件,UI功能强大,接入端无代码侵入。 ...
分类:
其他好文 时间:
2020-06-11 16:25:02
阅读次数:
187
一、类加载的时机 类的生命周期 类从被加载到虚拟机内存开始,到卸载出内存为止,它的整个生命周期包括以下 7 个阶段: 加载 验证 准备 解析 初始化 使用 卸载 验证、准备、解析 3 个阶段统称为连接。 加载、验证、准备、初始化和卸载这 5 个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班 ...
分类:
其他好文 时间:
2020-06-11 01:01:45
阅读次数:
41
在多线程并发的情况下,单个节点内的线程安全可以通过synchronized关键字和Lock接口来保证。 synchronized和lock的区别 Lock是一个接口,是基于在语言层面实现的锁,而synchronized是Java中的关键字,是基于JVM实现的内置锁,Java中的每一个对象都可以使用s ...
分类:
其他好文 时间:
2020-06-10 19:24:18
阅读次数:
54
1、概述 1.1、JVM规范 试图 定义一种java内存模型(JMM) 来 屏蔽掉各种硬件和OS的内存访问差异,以 实现 让java程序在各种平台下都达到一致的并发效果; 1.2、JDK1.5后,JMM 已经成熟和完善; 2、主内存 与 工作内存 2.1、JMM 的主要目标: 定义 程序中各个变量的 ...
分类:
编程语言 时间:
2020-06-10 13:23:51
阅读次数:
55
idea 选中Edit Congigurations 添加remote如下图 图中debug方式为listen (本地不通线上,线上通本地) 远程 hive 客户端修改{HIVE_HOME}/bin/ext/debug.sh 将HIVE_MAIN_CLIENT_DEBUG_OPTS、 HIVE_CH ...
分类:
其他好文 时间:
2020-06-10 13:20:11
阅读次数:
121
一.Java 类加载过程 Java 类加载需要经历一下 7 个过程: 1. 加载 加载是类加载的第一个过程,在这个阶段,将完成一下三件事情: 通过一个类的全限定名获取该类的二进制流。 将该二进制流中的静态存储结构转化为方法去运行时数据结 构。 在内存中生成该类的 Class 对象,作为该类的数据访问 ...
分类:
其他好文 时间:
2020-06-10 11:32:51
阅读次数:
53
JVM源码分析之安全点SafePoint safepoint可以用在不同地方,比如GC、Deoptimization,在Hotspot VM中,GC safepoint比较常见,需要一个数据结构记录每个线程的调用栈、寄存器等一些重要的数据区域里什么地方包含了GC管理的指针。 从线程角度看,safep ...
分类:
其他好文 时间:
2020-06-09 18:24:34
阅读次数:
49
#什么是JDWP JDWP(Java DEbugger Wire Protocol):即Java调试线协议,是一个为Java调试而设计的通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。说白了就是JVM或者类JVM的虚拟机都支持一种协议,通过该协议,Debugger 端可以和 targe ...
分类:
其他好文 时间:
2020-06-09 16:52:36
阅读次数:
87