- 博客(3)
- 资源 (9)
- 收藏
- 关注
转载 java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁
之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对); 2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并...
2019-02-17 15:55:44 148
转载 Java并发:volatile内存可见性和指令重排
volatile两大作用1、保证内存可见性2、防止指令重排此外需注意volatile并不保证操作的原子性。(一)内存可见性1 概念JVM内存模型:主内存和线程独立的工作内存Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自己的工作内存,不可以访问其它线程的工作内存。工作内存中保存了主内...
2019-02-17 11:53:42 202
原创 如何重构1000行以上方法或类
有些方法蕴含逻辑复杂,如果顺序编程可能达到千行以上,非常不好维护,看了《重构》这本书的同学可能会说,我可以强制将每个for循环,每段逻辑按照70行每函数方式抽取出来。然而...即使每段都抽取为70行以内(实际5~30行最佳),抽出的代码,大多以私有方法形式放置在同一个类里面,导致类大小膨胀,类的维护难度增加,指标不治本。今天介绍一个解决此类问题的通用方法。它就是:拦截过滤器模式http:/...
2019-02-15 16:11:25 623
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人