减小锁持有时间
只在必须同步的数据处进行同步。尤其不需要同步的重量级方法,不要放入同步块中。
注意:减小锁的持有时间有助于降低锁冲突的可能性,进而提升系统的并发能力。
减小锁粒度
所谓减少锁粒度,就是指缩小锁定对象的范围,从而减少锁冲突的可能性,进而提高系统的并发能力。
读写分离锁来替换独占锁
读写锁是对系统功能点的分割。
在读多写少的场合,使用读写锁可以有效提升系统的并发能力。
锁分离
使用一个独占锁,会造成锁竞争,可以考虑锁分离。如 LinkedBlockingQueue
队列里放入 put
和 取出 take
,会使用不同的锁。
锁粗化
在遇到一连串连续地对同一个锁不断进行请求和释放的操作时,便会把所有的锁操作整合成对锁的一次请求,从而减少对锁的请求同步次数。