11.3 线程引入的开销

11.3.1 上下文切换

11.3.2 内存同步

11.3.3 阻塞

11.4 减少锁的竞争

  • 减少锁的持有时间
  • 降低锁的请求频率
  • 使用带有协调机制的独占锁,这些机制允许更高的并发性

11.4.1 缩小锁的范围

11.4.2 减小锁的粒度

11.4.3 锁分段

11.4.4 避免热点域

例如将一些反复计算的结果缓存起来

11.4.5 一些替代独占锁的方法

11.4.6 监测CPU的利用率

11.4.7 向对象池说不

通常,对象分配操作的开销比同步的开销更低