java并发
文章平均质量分 87
wander_sky
这个作者很懒,什么都没留下…
展开
-
深入理解AQS同步器
AbstractQueuedSynchronizer,是用来构建锁或者其他同步组建的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作,并发包作者Doug Lea 期望他能够实现大部分同步需求的基础。原创 2016-03-19 10:05:45 · 835 阅读 · 0 评论 -
java并发DCL问题
java并发之单例模式,在早期的jvm中,synchronized存在巨大的性能开销。如果getInstance的竞争很小,甚至没有竞争,那么synchronized就存在很大的冗余性能开销。所以通过双重检查机制避免不必要的锁操作。原创 2016-03-15 10:33:26 · 3480 阅读 · 3 评论 -
Java多线程之volatile变量
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。转载 2016-03-26 14:42:54 · 313 阅读 · 0 评论 -
浅谈CAS原理
CAS原理:这是一种不加锁而实现操作原子化的一种巧妙的编程方式,不仅在java的jvm种,甚至在操作系统的底层并发实现机制中也有CAS的大量应用。原创 2016-03-08 09:56:03 · 2625 阅读 · 0 评论 -
CAS原理之缓存一致性
现代的CPU提供了特殊的指令,可以自动更新共享数据,而且能够检测到其他线程的干扰,而 compareAndSet() 就用这些代替了锁定。原创 2016-03-26 15:06:07 · 6861 阅读 · 0 评论 -
WebView性能、体验分析与优化
在App开发中,内嵌WebView始终占有着一席之地。它能以较低的成本实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁。然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案。转载 2017-06-17 13:10:27 · 14157 阅读 · 1 评论 -
jvm 优化记录
1.背景敏感词服务拆分后,在staging 环境压测。发现cpu 和 内存监控都飙高。在单机qps 200左右的情况下,cpu 使用率平均80+,young gc 次数平均200+ ,平均一次gc 耗时 20ms 左右 。注:YGC是JVM GC 最为频繁的一种GC,一个高并发的服务在运行期间,会进行大量的YGC,发生YGC时,会进行STW,一般时间都很短。 不过如果次数太多,势必会影响服...原创 2018-09-18 15:12:37 · 421 阅读 · 0 评论