Week_009_ 总结
上一周学到的东西,可以说非常的干了。JVM,垃圾回收,秒杀系统的设计,还有助教老师们对上一期作业的答案,感觉非常巧妙,就是有些绕,停下来反复在脑海中模拟了2-3遍才理清楚这个逻辑,然后错过了一些课上的内容.......
系统案例的分析(虽然是重复听的,但加深了映像,不管怎么说这是老师身为一个架构师,对于系统面临问题时,所做出的思考,听一遍是怎么都不够的。因为设身处地的去想,可能不同的人在面对同样的问题时,做出的决定肯定会有所不同,考虑的东西也会有所不同,达到的效果和最终的成就必然也是不一样的,对于老师的架构分享感觉已经收获很大了)
JVM:Java中大多数对象都是朝生夕死的,在新生代有三个区域,Eden、From和To区,MinorGC时先将存活对象拷贝到From区,此时Eden和To区是空的,再次MinorGC时,将From和Eden区的对象拷贝到To区,此时From区和Eden区都是空的,重复上述过程。
Servlet是线程安全的么:老师觉得是不安全的,因为是单实例,所有请求都通过一个Servlet,里面的成员变量可能会被线程访问到,所以是不安全的;感觉另外一个人说的有点道理,Servlet是线程安全的,因为只取决于是否有多线程共享的变量。Servlet安不安全只取决于程序员写的类是否安全。
讲了ThreadLocal的源码,感觉挺有意思的,既是共享的(都指向堆,堆是共享的),也是独享的。因为之前一直没太搞懂这玩意,想着大概是一个Map,但没细想。后来老师拆解了以后发现并不全是Map,是一个数据结构:ThreadLocalMap,这个数据结构在每个Thread中都有存放:threadLocals。
在线程池中ThreadLocal中的内容用完一定要清空!!
无状态对象,对象没有成员变量,或者成员变量本身就是无状态的。
任何计算机问题都可以通过加一层中间层来解决。
秒杀那节课,看起来头头是道....
真正要写的时候....感觉好多,不知道该从哪写起,直接复制作业好像又不太好,就不总结了.....
关键还是化整为零吧,加上一些分片的技术来降低单节点的资源压力.....觉得最棘手的可能还是怎么防黑灰产吧,但这玩意...也不好说...就不混字数了...
最近准备面试,感觉上的每一堂课,都帮我巩固了之前的知识点,很开心~但其实还是有蛮多涉及到OS底层相关的知识,其实还是会有点淤塞,大概没用对方法吧....
评论