1. 使用ThreadLocal来缓存本地资源引用,使用线程封闭的资源来减少锁的冲突
  2. 采用读多写少的线程安全的CopyOnWriteArrayList来缓存所有对象,几乎不影响读取效率
  3. 使用基于CAS的AtomicInteger来计算等待者的数量,无锁操作使得计算更加快速
  4. 0容量的交换队列SynchronousQueue,使得对象传递更加迅速
  5. 采用compareAndSet的CAS原语来控制状态的变更,安全且效率高。很多核心代码都是这么设计的
  6. 在循环中使用park、yield等方法,避免死循环占用大量CPU
  7. 需要了解并发数据结构中的offer、poll、peek、put、take、add、remove方法的区别,并灵活应用
  8. CAS在设置状态时,采用了volatile关键字修饰,对于volatile的使用也是一个常见的优化点
  9. 需要了解WeakReference弱引用在垃圾回收时候的表现
文章作者: LrMaker
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 最上级
后端 java 多线程
喜欢就支持一下吧