理解高并发(7).编程过程中锁的优化技巧
来源:互联网 发布:知乎日报 启动图 编辑:程序博客网 时间:2024/06/06 17:20
- 分拆(段)锁
把一个集合看分成若干partition, 每个partiton一把锁。ConcurrentHashMap就是分了
16个区域,这16个区域之间是可以并发的。
mysql innode的行级锁运用的就是该思想。
- 尽量减小锁的控制范围
范围越大,运行时间越长
- 尽量减小锁的使用时间
运行时间越长,其它线程等待的时间就越长
- 分离锁
独立不相关的数据用不同的锁,比如一个对象有很多字段,这些字段是独立的,而不是组合起来表示一个逻辑数据(比如firstName, lastName,必须组合起来表示一个名字),那么可以每个字段各自对应不同的锁,而不是锁整个对象
- 读写锁
读多写少的场景非常适用, 能够保持最终一致性。copyOnWriteArray 主要解决读、遍历和写之间的冲突,对数组写(更新、增加)的时候,copy一个新数组做,这样iterator永远不会有ConcurrentModification问题,读也永远都是读得完结状态下的值
阅读全文
0 0
- 理解高并发(7).编程过程中锁的优化技巧
- 理解高并发(6).jvm对内置锁的优化
- 理解高并发(2).我对并发编程的理解
- 高并发的优化
- 高并发下锁的优化
- 高并发下投标过程进行优化
- Ejabberd高并发的优化
- 优化高并发的系统
- 高并发的简单理解
- 高并发高访问量网站的优化
- 高并发高访问量网站的优化
- 高并发高访问量网站的优化
- 聊聊高并发(五)理解缓存一致性协议以及对并发编程的影响
- 多线程并发锁,优化过程
- Java高并发程序设计笔记(七)锁的优化
- 高并发Java 九 锁的优化和注意事项
- 高并发Java 九 锁的优化和注意事项
- JAVA并发编程的理解
- 理解高并发(6).jvm对内置锁的优化
- Linux常用命令
- scikit-learn 实战之监督学习 2
- 使用python爬取网页发送到邮箱
- jmap 查看内存使用直方图
- 理解高并发(7).编程过程中锁的优化技巧
- JAVA JVM原理
- 必应首页背景图片抓包-截取api
- linux su和sudo命令的区别
- scikit-learn 实战之监督学习 3
- 正则表达式
- 王健林卖掉万达广场?把这几篇新闻放一起看
- JQuery.Ajax()的data参数类型
- Eclipse工具使用问题及解决方案汇总