2018第22周回顾
原子属性更新器AtomicReferenceFieldUpdater的使用,AtomicReferenceFieldUpdater是Java原子属性更新器,它能让普通对象的get、set操作变为原子操作,从而避免多线程环境下同步操作,提高程序运行效率。原子属性更新器常用的方法是compareAndSet比较并设置属性值,getAndSet返回当前属性值并设置新值。
自旋锁、排队自旋锁、MCS锁、CLH锁讲了自旋锁的几种实现,最简单的用AtomicReference<Thread>对象实现一个自旋锁,用它的compareAndSet方法循环判断当前对象是否持有锁来实现加锁、解锁操作。但这种实现是非公平的,若要实现公平自旋锁,可借用服务号、排队号概念,用两个AtomicInteger变量实现加锁解锁操作。为进一步提升性能,让申请线程只在本地变量上自旋,又有人发明了MCS锁和CLH锁,它们都是基于AtomicReferenceFieldUpdater实现。
Java并发之synchronized讲了Java同步关键词的实现原理,以及优化过程,从Java6开始,默认开启偏向锁,当不同线程申请锁导致偏向锁失败后升级为轻量级锁,当在短时间有不同线程同时争抢锁导致轻量级锁失败后尝试自旋操作,如果超出自旋次数则升级为重量级锁。在对象头中有对象锁类型标志。
HTTP基本知识回顾了它的基本原理,请求报文、响应报文的格式要求以及常见响应头作用。
HTTP大文件上传要考虑很多问题,比如同时支持上传文件数、最大上传文件大小,上传文件服务器内存占用,多线程分片上传,断点续传,文件检验失败重传等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2017-06-03 聪明人都在默默下笨功夫,愚蠢的人却总在想偷懒找捷径
2016-06-03 2016第23周五
2015-06-03 2015第23周三
2014-06-03 第23周二
2013-06-03 2013年6月3日星期一
2012-06-03 云存储相关概念学习