多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### ![](../assets/20180822212644001.png) ### 锁优化建议 * 减小锁持有时间\(减小锁持有的时间有助于降低锁冲突的可能性,提升系统并发能力\); * 减小锁粒度:指缩小锁定对象的范围,从而减少锁冲突的可能性,进而提供系统并发能力;主要技术是锁分解和分段锁; * 读写锁替换独占锁\(读多写少的场景,使用读写锁可以有效提升系统并发能力\); * 锁分离\(参见LinkedBlockingQueue的实现\) * 锁粗化\(Lock Coarsening\):\(虚拟机在遇到一连串连续的对同一个锁不断进行请求和释放时,会把所有的锁操作整合成对锁的一次请求,从而减少对锁的请求同步次数\); 【知识点】 * 锁分解 如果一个锁需要保护多个相互独立的状态变量,那么可以将这个锁分解为多个锁,并且每个锁只保护一个变量,从而提高可伸缩性,降低每个锁被请求的频率; ![](https://img.kancloud.cn/00/f9/00f94128e7bedd22bae96c9f3a4b4275_837x130.png) * 锁分段 ![](https://img.kancloud.cn/5b/26/5b26492983638af51756445b0d7a6f0b_841x371.png)分段锁的实现: ![](https://img.kancloud.cn/8d/c6/8dc6647eafee86cd6066e5a482116183_591x561.png) 分段锁的实现场景 ![](https://img.kancloud.cn/91/86/9186bd9f880bdd51b9236fed8dfa67e8_789x156.png) ![](https://img.kancloud.cn/2a/be/2abe59bcd01214567a7a8b3357ebd627_779x89.png)