码迷,mamicode.com
首页 > 其他好文 > 详细

锁的优化

时间:2018-12-17 22:01:19      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:死锁   判断   获取   代码块   同步   范围   带来   分解   导致   

加锁本身不会带来多少性能的损耗,性能的损耗主要在获取锁的过程。
1.尽量不要锁住方法,因为在普通成员函数上加锁,线程获得的是该方法所在对象的对象锁;
2.缩小同步代码块,尤其是一些循环操作、同步IO操作,并且不止是在代码行数上缩小同步块,在执行逻辑上也应该缩小,例如多增加一些条件判断,在符合条件的情况下再进行同步;
3.锁中尽量不要再包含锁,可能导致死锁;
4.将锁私有化,外部不能拿到这个对象,更安全一些;
5.进行适当的锁分解,将锁的范围最小化,与其一大段被锁着只能一个线程顺序处理,不如分成多个小段提升效率;
7.选择合适特性的锁,比如互斥锁、可重入锁、读写锁等;

锁的优化

标签:死锁   判断   获取   代码块   同步   范围   带来   分解   导致   

原文地址:https://www.cnblogs.com/yuanfei1110111/p/10134132.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!