锁的优化
Posted yuanfei1110111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了锁的优化相关的知识,希望对你有一定的参考价值。
加锁本身不会带来多少性能的损耗,性能的损耗主要在获取锁的过程。
1.尽量不要锁住方法,因为在普通成员函数上加锁,线程获得的是该方法所在对象的对象锁;
2.缩小同步代码块,尤其是一些循环操作、同步IO操作,并且不止是在代码行数上缩小同步块,在执行逻辑上也应该缩小,例如多增加一些条件判断,在符合条件的情况下再进行同步;
3.锁中尽量不要再包含锁,可能导致死锁;
4.将锁私有化,外部不能拿到这个对象,更安全一些;
5.进行适当的锁分解,将锁的范围最小化,与其一大段被锁着只能一个线程顺序处理,不如分成多个小段提升效率;
7.选择合适特性的锁,比如互斥锁、可重入锁、读写锁等;
以上是关于锁的优化的主要内容,如果未能解决你的问题,请参考以下文章