
Reading Note
文章平均质量分 85
Stephen.W
life is full of unknown
展开
-
【java并发编程】线程安全性和对象共享
读书笔记来自《java并发编程实战》。线程安全性可重入锁可重入意味着获取锁的操作的粒度是线程而不是调用。实现方法是为每个锁关联一个获取计数值和一个所有者进程。当计数器为0,这个锁被认为可以被任何线程池游。当线程请求一个未被池游的锁时,JVM将记下锁的持有者,并且将计数器置为1,如果同一个线程再次获取这个锁,计数器将递增。当线程退出痛不快,计数器递减。当计数器为0,锁被释放。...原创 2018-04-04 11:42:41 · 667 阅读 · 0 评论 -
【java并发编程】对象组合
介绍可以通过对象组合构造一个满足需求的线程安全的类。 笔记来自《java并发编程实战》监视器模式(实例封闭)遵循java监视器模式的对象会把对象的所有可变状态都封装起来,并由对象自己的内置锁来保护。如:public calss PrivateLock { private final Object myLock = new Object(); Widget widg...原创 2018-04-05 23:24:15 · 730 阅读 · 0 评论 -
【java并发编程】ReentrantLock和synchronized
在jdk5之前,协调共享对象访问的只有synchronized和lock,jdk增加了一种新的锁机制:ReentrantLock。lock并不是对内置锁的替换,而是互补。这篇文章主要循序渐进的比较两者异同和适用场景,如果有理解错的地方希望大家能指出。synchronized怎么实现的?synchronized是Java中解决并发问题的一种最常用最简单的一种方法,有效满足了线程安全的三大...原创 2018-05-05 00:17:13 · 362 阅读 · 0 评论 -
【读书笔记】人人都是架构师:分布式系统架构落地与瓶颈突破
《人人都是架构师:分布式系统架构落地与瓶颈突破》。书主要介绍作者遇到的一些实际场景,提供了处理一些典型场景的思路,书中介绍了许多开源软件,但代码和一些细节比较少。分布式入门书,开拓了视野。大流量消锋/限流的常规手段1. 扩容使用集群技术对服务器进行扩容,可以很好的提升系统整体的并行处理能力。2. 动静分离静态数据可以放在CDN上来加速系统的响应速度3. 缓存...原创 2018-07-03 00:18:39 · 976 阅读 · 0 评论 -
【读书笔记】推荐系统实践-常见推荐算法及应用
衡量推荐算法的指标用户满意度满意度是评测推荐系统最重要的指标,但是无法通过离线计算获得,只能通过用户调查或者在线实验。预测准确度对于TopN推荐(这里主要讨论TopN推荐),对于准确度的衡量有两个指标。R(u)是针对测试集,根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在测试集上的行为列表。召回率:表示用户喜欢的物品列表里被推荐系统推荐到的比例Recall=...原创 2018-07-03 15:34:19 · 6525 阅读 · 0 评论 -
【java并发编程】原子变量和CAS
我们知道锁的实现可以分为乐观锁和悲观锁,具体可以参照我的这篇文章数据库的锁机制及原理。java中也有对应的乐观锁和悲观锁的实现,在之前的文章中我们讨论了ReentrantLock和synchronized,它们都是悲观锁的具体实现,都是先确保拿了锁才会去操作。java中同样也有乐观锁的实现,这就是CAS(compareAndSwap)机制。锁的劣势如果锁已经被占用,那么其他线程必须被挂起...原创 2018-05-05 20:41:11 · 296 阅读 · 0 评论 -
【java并发编程】DCL单例模式与Happen-Before
本来想写一篇文章说说DCL的缺陷顺带说一下JMM,看到有一篇文章写的不错,就直接转过来修改了一下。原文出处在这里。1 前言单例模式是我们经常使用的一种模式,一般来说很多资料都建议我们写成如下的模式:public class Instance { private String str = ""; private int a = 0; private stat...转载 2018-05-05 21:01:55 · 680 阅读 · 0 评论