(17)提高“锁”性能

文章目录

    • 减小锁持有时间
    • 减小锁粒度
    • 读写分离锁来替换独占锁
    • 锁分离
    • 锁粗化

减小锁持有时间

只在必须同步的数据处进行同步。尤其不需要同步的重量级方法,不要放入同步块中。

注意:减小锁的持有时间有助于降低锁冲突的可能性,进而提升系统的并发能力。

减小锁粒度

所谓减少锁粒度,就是指缩小锁定对象的范围,从而减少锁冲突的可能性,进而提高系统的并发能力。

读写分离锁来替换独占锁

读写锁是对系统功能点的分割。

在读多写少的场合,使用读写锁可以有效提升系统的并发能力。

锁分离

使用一个独占锁,会造成锁竞争,可以考虑锁分离。如 LinkedBlockingQueue 队列里放入 put 和 取出 take ,会使用不同的锁。

锁粗化

在遇到一连串连续地对同一个锁不断进行请求和释放的操作时,便会把所有的锁操作整合成对锁的一次请求,从而减少对锁的请求同步次数。

你可能感兴趣的:(Java高并发)