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