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