2018第22周回顾

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

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

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

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

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

原文地址:https://www.cnblogs.com/doit8791/p/9128189.html

时间: 2024-11-02 16:03:59

2018第22周回顾的相关文章

2018第21周回顾

Java线程及线程池状态总结了多线程的基础,线程的状态及转换,线程从新建.阻塞.等待.条件等待等状态在条件满足时会进入可运行状态,等待操作系统选中分配CPU资源后线程得到执行,由于每次执行获得的CPU时间片很短,几乎感觉不到,所以JAVA线程状态定义中没有执行中的状态.VisualVm中运行(running)状态实际对应线程的可运行状态. Map容器安全记录了两个Map使用要注意的两个问题,HashMap线程不安全下使用可能会导致结果不正确也可能会导致死循环,ConcurrentHashMap的

三级菜单的增删改-2018.2.22(下)

百度了一下三级菜单增删改的代码,要我说呢,这个代码要我自己写呢,估计几天也写不出来,这个代码写的,怎么说呢,非常巧妙,然后呢 我把他的代码拷贝下来自己看了一遍然后修改了一遍 算是比他原来的要更加好一点了吧(当然是我认为了)还有就是现在感觉他里面有些代码我看不懂 它的用处,也不知道是真的没用,还是我真的没看懂,这是一个问题,不管了吧 反正算是修改好了,好了 . 他的代码: f_read = open('menu_file','r',encoding='utf8') #读取menu_file文件中的

2018.4.22

2018.4.22 早. 说是要记录一下每一天的东西,但实际上已经好几天没有写了. 早上起来发现下雨了,原本准备早上起来去上自习把算法设计写了, 看来只能窝在宿舍里了(其实是犯懒 昨天有开始了久违的跑步,希望能坚持下去=.= 蓝桥杯和数模比赛时间冲突了,只能放弃数模了,说实话心里有点不爽 希望今天能把算法设计的作业写了,再复习一下. 就这样,溜了溜了 原文地址:https://www.cnblogs.com/DLKKILL/p/8905862.html

2018.09.22 上海大学技术分享 - An Introduction To Go Programming Language

老实说笔者学习 Go 的时间并不长,积淀也不深厚,这次因缘巧合,同组的同事以前是上海大学的开源社区推动者之一,同时我们也抱着部分宣传公司和技术分享的意图,更进一步的,也是对所学做一个总结,所以拟定了这次分享.另外与会的同学大多都是大二大三的"萌新",考虑到受众水平和技术分享的性质,所以实际上这次分享涉及到的知识点都相对基础,当然为了寓教于乐,本人也十分讨厌着重介绍基础语法时可能引起的枯燥,所以加了少少的私货,并且也针对 1.11 及之前版本中或优雅,或局限的特性做了发散性的讲解. 总而

2018.1.22 7周1次课

七周一次课(1月22日) 10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令 10.5 nload命令 众所周知,生病了需要去医院看病,大夫首先要询问我们哪里不舒服,然后再通过观察和自己的经验,大体上就能判定我们得的是什么病.然而Linux不会说话,它不会主动告诉我们哪里出现了问题,需要我们自己去观察.那么如何评估系统运行状态是否良好呢?下面阿铭就介绍一些帮我们分析系统状态的工具. 10.1 使用w查看系统负载 相信所有Linux管理员最常用的命

2018.3.22 13周4次课

十三周四次课(3月22日) 13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令 13.1 设置更改root密码 root用户的mysql的超级管理员用户,跟linux的root用户类似.但需要区分,这个root用户和系统的root用户不是一个用户,需要注意.也可以创建一个普通用户来连接mysql 首次进入mysql数据库是不用密码的.默认mysql数据库的root用户密码为空,连接时不需要密码 设置密码: 启动mysql:service mysqld star

2018.4.22 五周第五次课 (正则grep-过滤指定关键词)

正则表达式介绍-grep(过滤指定关键词) egrep使用时,不需要添加脱义字符\ 概念:它使用单个字符串来描述或匹配一系列符合某个句法则规则的字符串: 正则表示式通常用来检索和替换那些符合某个模式的文本内容. 无论是查找某个文档,还是查询某个日志文件并分析其内容,都会用正则表示式. 正则就是一串有规则的字符串: 掌握好正则对于编写shell脚本有很大帮助: 各种变成语言中都有正则,原理是一样的. 命令格式:grep [-cinvrABC] 'word' filename 常用选项如下: -c

2018第25周总结

Java类加载器回顾,重点是Java类加载机制不能实现现实的需求时如何处理,重点是两种情况没法处理,SPI(服务提供接口),接口在调用方,可能被根加载器加载,实现方通过独立的Jar包实现被系统加载器,那么接口调用方在要加载实现方的类时如何处理?线程上下文加载器就是为了解决这个问题.另外就是Tomcat类加载机制的设计也没有严格遵守Java双亲委派机制,因为要实现应用类目录下的jar包优先级公用目录下的jar包,所以加载类时优先子类加载器尝试在应用目录下加载,找不到时再有父类加载器尝试在公用目录下

IT 2018年:ManageEngine回顾总结

2018年已经结束,你可能已经回顾过今年对你的影响了.在IT界,2018年开始使用处理器漏洞Meltdown和Spectre.从那时起,这一年充斥着数据泄露和勒索软件所带来的负面影响.但今年情况并非都是负面的: GDPR生效,,并发布了大量新技术,这是数据隐私方面向前迈出的一大步.?我们ManageEngine也度过了一个繁忙的一年,所以我们决定重新审视2018年的一些主要趋势和事件以及我们如何应对.发现2018年的趋势 随着世界目睹一些关键的全球IT转变,2018年是一个受影响最大的一年.我们