![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记输出
藿香正气
这个作者很懒,什么都没留下…
展开
-
《RocketMQ实战与原理解析》学习笔记1
分布式消息队列的功能 应用解耦 流量消峰 应用系统流量瞬间猛增,这个时候如果没有缓冲机制,不可能承受住短时大流 量的冲击。通过利用消息队列,把大量的请求暂存起来,分散到相对长的一段时间内 处理,能大大提高系统的稳定性和用户体验 。 消息分发 保持最终一致性 方便动态扩容 RocketMQ RocketMQ四个角色 Producer Consumer Broker NameServ...原创 2019-11-09 19:26:33 · 321 阅读 · 0 评论 -
算法2:如何从无序链表中移除重复项
题目描述: 给定一个没有排序的链表,去掉其重复项,并保留原顺序. 如链表1->3->1->5->5->7,去掉重复项后变为1->3->5->7 解题: public static void removeDup(ListNode head){ Set<Integer> valueSet = new HashSet<...原创 2019-11-07 11:28:07 · 255 阅读 · 0 评论 -
算法1:如何实现链表的逆序
题目描述: 给定一个带头结点的单链表,请将其逆序。即如果单链表原来为head->1->2->3->4->5->6->7, 则逆序后变为head->7->6->5->4->3->2->1。 单链表的结构: 对单链表中任何一个结点的访问只能从链表的头指针开始进行遍历。 就地逆序 主要思路:在遍历链表时,修改当...原创 2019-11-07 10:45:16 · 354 阅读 · 0 评论 -
学习笔记:Java并发包中锁原理
LockSupport工具类 java.util.concurrent.locks.LockSupport是个工具类,主要作用是挂起和唤醒线程,该工具类是创建锁和其他同步类的基础。 LockSupport类与每个使用它的线程都会关联一个许可证,在默认情况下调用LockSupport类的方法的线程是不持有许可证的。 LockSupport是使用Unsafe类实现的。 几个主要函数: void pa...原创 2019-11-05 19:34:10 · 141 阅读 · 0 评论 -
学习笔记:读写锁ReentrantReadWriteLock的原理
读写锁ReentrantReadWriteLock的原理 ReentrantReadWriteLock采用读写分离的策略,允许多个线程可以同时获取读锁。 读写锁的内部维护了一个ReadLock和一个WriteLock,它们依赖Sync实现具体功能,而Sync继承自AQS,并且也提供了公平和非公平的实现。 ReentrantReadWriteLock使用state的高16位表示读状态,也就是获取...原创 2019-11-05 19:21:50 · 202 阅读 · 0 评论 -
学习笔记:独占锁ReentrantLock的原理
独占锁ReentrantLock的原理 ReentrantLock是使用AQS来实现的,并且根据参数来决定其内部是一个公平还是非公平锁,默认是非公平锁。 public ReentrantLock() { sync = new NonfairSync(); } public ReentrantLock(boolean fair) { sync = fair ? new F...原创 2019-11-05 18:18:24 · 725 阅读 · 0 评论 -
学习笔记:CopyOnWriteArrayList
CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数组(快照)上进行的,使用了写时复制策略。 public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable ...原创 2019-11-04 12:13:23 · 137 阅读 · 0 评论 -
笔记--锁概念
锁 乐观锁与悲观锁 悲观锁指对数据被外界修改持保守态度,任务数据很容易就会被其他线程修改,所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中使数据处于锁定状态。 悲观锁的实现往往依靠数据库提供的锁机制,即在数据库中,在对数据记录操作前给记录加排它锁。如果获取锁失败,则说明数据正在被其他线程修改,当前线程则等待或者抛出异常。如果获取锁成功,则对记录进行操作,然后提交事务后释放排它锁。 乐观锁...原创 2019-11-03 14:22:52 · 159 阅读 · 0 评论 -
了解微服务
从思路和理念上来讲,微服务(Microservice)就是倡导尽量将功能进行拆分,将服务粒度做小,使之可以独立承担对外服务的职责。 微服务带来的好处 独立 独立开发:每个微服务基本上都是各自独立的项目(Project),对应的研发团队基本上也是独立的(并行研发、各自快速迭代) 独立运行:提高了可拓展性、隔离性 多语言生态 ...原创 2019-10-28 18:07:50 · 100 阅读 · 0 评论