个人简介

Echo Blog


江湖无名 安心练剑
  • 锁专题(9) PriorityBlockingQueue 优先级阻塞队列源码解析
    PriorityBlockingQueue 简介 一个无界BlockingQueue,它使用与类PriorityQueue相同的排序规则,并提供阻塞检索操作。 尽管此队列在逻辑上是不受限制的,但是尝试添加可能由于资源耗尽 OutOfMemoryError而失败。 限制如下: (1)此类不允许使用null元素。 (2)依赖于Comparable的优先级队列也不允许插入不可比较的...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) LinkedTransferQueue 源码解析
    LinkedTransferQueue 是什么 基于链接节点的无限制 TransferQueue。 此队列针对任何给定的生产者对元素FIFO(先进先出)进行排序。 队列的开头是某个生产者在队列中停留时间最长的元素。 队列的尾部是某个生产者最短时间进入队列的元素。 LinkedTransferQueue 是 LinkedBlockingQueue、SynchronousQueu...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) LinkedBlockingQueue 使用入门及源码解析
    问题 LinkedBlockingQueue 是什么? 优缺点? 应用场景? 源码实现? 个人启发? LinkedBlockingQueue 双向并发阻塞队列。 所谓双向是指可以从队列的头和尾同时操作,并发只是线程安全的实现,阻塞允许在入队出队不满足条件时挂起线程,这里说的队列...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) DelayQueue 延迟队列源码解析
    DelayQueue 简介 延迟元素的无限制BlockingQueu,其中元素只能在其延迟到期后才能获取。 当元素的getDelay(TimeUnit.NANOSECONDS)方法返回小于或等于零的值时,就会发生过期。 即使未到期的元素无法使用take或poll删除,它们也被视为普通元素。 此队列不允许 null 元素。 思考题 为什么不允许有 null 元素? 其实和其他几...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) CyclicBarrier 栅栏源码深度解析
    栅栏(Barrier) 简介 栅栏(Barrier)类似于闭锁,它能阻塞一组线程直到某个事件发生。 闭锁是一次性对象,一旦进入最终状态,就不能被重置了。 栅栏与闭锁的关键区别在于,所有线程必须同时达到栅栏位置,才能继续执行。 闭锁用于等待事件,而栅栏用于等待其他线程。 而我再等你点赞。 java 手写并发框架(一)异步查询转同步的7种实现方式 我就用到了 CyclicBarri...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) CountDownLatch 源码深度解析
    CountDownLatch 闭锁 我们在 java 手写并发框架(一)异步查询转同步的7种实现方式 和 从零手写并发框架(二)异步转同步实现4种锁策略 都是用过这个类,感兴趣的小伙伴可以看一下。 说明 CountDownLatch 是一种同步工具类,它允许一个或多个线程等待,直到在其他线程中执行的一组操作完成为止。 可以让一个线程等待一组事件发生后(不一定要线程结束)继续执行; ...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) ConcurrentSkipListSet 源码解析
    ConcurrentSkipListSet 简介 基于以下内容的可伸缩并发NavigableSet}实现:ConcurrentSkipListMap。 万字长文,ConcurrentSkipListMap源码详解 集合中的元素根据其可比自然顺序或在集合创建时提供的Comparator保持排序,具体取决于使用哪个构造函数。 set 汇总 我们学习了大量的 jdk 的集合...
    2020-10-17 08:15:55 | Lock
  • 锁专题(9) ConcurrentSkipListMap 源码解析
    ConcurrentSkipListMap 简介 可伸缩的并发ConcurrentNavigableMap 实现。 根据可比较的自然顺序或根据在创建 map 时提供的Comparator对 map 进行排序,具体取决于所使用的构造函数。 入门例子 ConcurrentSkipListMap<String, Integer> map = new ConcurrentS...
    2020-10-17 08:15:55 | Lock