摘要: 类结构图 Lock概述 Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。synchronized方法或代码块的使用提供了对与每个对象相关的隐式监视器锁的访问,但却强制所有锁获取和释放均要出现在一个块结构中:当获取了多个锁时,它们必须以相反的顺序释放,且必须在 阅读全文
posted @ 2017-11-03 17:44 在周末 阅读(1351) 评论(0) 推荐(1) 编辑
摘要: 概述 抽象队列同步器(AbstractQueuedSynchronizer,简称AQS)是用来构建锁或者其他同步组件的基础框架,它使用一个整型的volatile变量(命名为state)来维护同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 volatile变量的读写和CAS是concu 阅读全文
posted @ 2017-11-03 16:44 在周末 阅读(3141) 评论(0) 推荐(0) 编辑
摘要: 重排序 重排序是指编译器或处理器为了提高程序性能而对指令序列进行重新排序的一种手段。重排序可以导致操作延时或程序看似乱序执行,给程序运行的结果带来一定的不确定性。 三类重排序: 1)编译器的重排序:编译器在不改变单线程语义的前提下,生成的指令顺序可以与源代码不同。对Java来说,此处的编译器是指JI 阅读全文
posted @ 2017-11-03 15:42 在周末 阅读(371) 评论(0) 推荐(0) 编辑