2018第22周回顾

原子属性更新器AtomicReferenceFieldUpdater的使用,AtomicReferenceFieldUpdater是Java原子属性更新器,它能让普通对象的get、set操作变为原子操作,从而避免多线程环境下同步操作,提高程序运行效率。原子属性更新器常用的方法是compareAndSet比较并设置属性值,getAndSet返回当前属性值并设置新值。

自旋锁、排队自旋锁、MCS锁、CLH锁讲了自旋锁的几种实现,最简单的用AtomicReference<Thread>对象实现一个自旋锁,用它的compareAndSet方法循环判断当前对象是否持有锁来实现加锁、解锁操作。但这种实现是非公平的,若要实现公平自旋锁,可借用服务号、排队号概念,用两个AtomicInteger变量实现加锁解锁操作。为进一步提升性能,让申请线程只在本地变量上自旋,又有人发明了MCS锁和CLH锁,它们都是基于AtomicReferenceFieldUpdater实现。

Java并发之synchronized讲了Java同步关键词的实现原理,以及优化过程,从Java6开始,默认开启偏向锁,当不同线程申请锁导致偏向锁失败后升级为轻量级锁,当在短时间有不同线程同时争抢锁导致轻量级锁失败后尝试自旋操作,如果超出自旋次数则升级为重量级锁。在对象头中有对象锁类型标志。

HTTP基本知识回顾了它的基本原理,请求报文、响应报文的格式要求以及常见响应头作用。

HTTP大文件上传要考虑很多问题,比如同时支持上传文件数、最大上传文件大小,上传文件服务器内存占用,多线程分片上传,断点续传,文件检验失败重传等。

猜你喜欢

转载自www.cnblogs.com/doit8791/p/9128189.html