进入之后,线程便被挂起了,不会自旋了。
Java锁事之重量级锁Java中的重量级锁是通过ObjectMonitor实现的。接下来简单分析下ObjectMonitor的实现逻辑。 Objectmonitor中的关键词 EntryList ...
进入之后,线程便被挂起了,不会自旋了。
Java锁事之重量级锁Java中的重量级锁是通过ObjectMonitor实现的。接下来简单分析下ObjectMonitor的实现逻辑。 Objectmonitor中的关键词 EntryList ...
skywalking的skywalking-nginx-lua模块需要配置lua环境。以下为在centos7上安装lua环境的执行记录 基本信息 centos7 lua5.3...
Java中的阻塞队列 ArrayBlockingQueeue,LinkedBlockingQueue,PriorityBlockingQueue,ConcurrentLink...
IP地址的分类、子网、子网掩码的作用 IPV4 由 4kb(32bit)构成,10进制下通常表示为: xxx.xxx.xxx.xxx其二进制表示形式为:100000000.0...
Java线程模型 本文将从线程类型、线程通信、线程调度三个方面分析Java中的线程模型。 什么是线程? 线程就是进程的切片。因为CPU速度太快,进程切换时cpu都要进行进程上...
常量池、运行时常量池、字符串常量池 Java里包含各种常量池,经常傻傻分不清楚,下面就简单梳理下Java中的池们。 概念解释 常量池 这里的常量池指的是Class文件常量池。...
Java中hashCode的实现 从我们刚学Java就知道,要重写equal就要一起重写hashCode.但是你有了解过hashCode的实现吗? 什么是hashCode h...
Java中的重量级锁是通过ObjectMonitor实现的。接下来简单分析下ObjectMonitor的实现逻辑。 Objectmonitor中的关键词 EntryList ...
轻量级锁 引入轻量级锁的目的是为了避免在没有多线程竞争的情况下,由于互斥信号量造成的不必要性能浪费。 基础知识 轻量级锁加锁解锁总共需要两次CAS。其操作的模板是instan...
有业务反馈,线上一个应用运行了一段时间之后,在高峰期之后,突然发现处理能力下降,接口的响应时间变长,但是看Cat上的GC数据,一切都很正常。 通过跳板机上机器查看日志,发现一...
CommonJS规范 CommonJS分为1.0和1.1两个版本。 CommmonJS 1.0 模块上下文在一个模块中,存在一个自由变量“require”函数这个“rquir...
node 模块循环依赖 nodejs通过require加载依赖module,当两个module相互引用时,就会出现循环依赖问题。具体请看如下示例:假设有a.js和b.js相互...
按值传递、按引用传递、按共享传递 按值传递(call by value) 按值传递,就是指在调用函数时,将实参对应的值做一个拷贝指向函数对应的形参。在函数内改变形参对应的值并...
JS的原型链 本文阐述了js中的prototype,constructor和proto之间的关系。同时梳理了js如何实现继承的。 属性释义 prototype protot...
Mac下编译openJDK 最近阅读《深入理解Java虚拟机:JVM高级特性与最佳实践》时,按照书上的教程打算编译一个JDK。由于书中使用的版本是openJdk7u4年代比较...
全局变量和顶层对象 什么是全局变量 在JS中全局变量就是指在函数外部通过var声明的变量。如果是在nodeJS环境中则需通过global.variable显示的声明。全局变量...
在JavaScript中,bind、call、apply、是Function提供的三个方法。三个方法的共同之处就是都能够改变对this的引用。接下来我们将通过几个简单例子浅析...
偏向锁 当只有一个线程多次重复抢占锁同一资源时,即使是轻量级锁每次也至少需要两次(加锁、解锁)CAS操作。而此场景经Hotspot统计是比较容易出现的。所以为了减少不必要的资...
Java对象内存布局之谜 一个Java对象在堆上除了成员信息,还有其他内容吗?他在堆上是如何布局的?接下来本文将以Hotspot为例分析Java对象内存布局之谜。 堆中的Ja...