08 2018 档案
摘要:[TOC] 1. 什么是Zookeeper Zookeeper是大数据生态圈中的重要组件,如果你做过相关开发的话,应该经常能看到它的身影。其由雅虎开源并成为Apache的顶级项目。用一句话对其进行定义就是:它是一套高吞吐的分布式协调系统。从中我们可以知道Zookeeper至少具有以下特点: 1.Zo
阅读全文
摘要:[TOC] 1. 前言 如果你认真看过我前几天写的这篇博客 "自己动手构建无锁的并发容器(栈和队列)" 的队列部分,那么我要向你表示道歉。因为在实现队列的出队方法时我犯了一个低级错误:队列的出队方向是在队列头部,而我的实现是在队列尾部。尽管代码能够正确执行,但明显不符合队列规范。所以那部分代码写作"
阅读全文
摘要:[TOC] 1. 前言 在 "自己动手构建无锁的并发容器(栈和队列)" 中我们基于CAS算法构建了自己的无锁队列,其底层实现是不带哨兵结点的双向链表。双向链表为当前结点保留了指向前驱结点的引用,这种特性有时很有用,比如ReentrentLock中线程被唤醒后会通过prev指针找到前驱结点,通过判断其
阅读全文
摘要:更新日志(2018年8月18日):这篇博客的队列部分犯了个低级错误:入队和出队在同在队列尾端进行。正确的实现方式见 "基于双向链表实现无锁队列的正确姿势(修正之前博客中的错误)" [TOC] 1.前言 并发容器是线程安全的容器。它在实现容器基本功能的前提下,还提供了并发控制能力,使得容器在被多线程并
阅读全文
摘要:[TOC] 1.前言 在 "ReentrantLock(重入锁)功能详解和应用演示" 这篇文章里我们讲解并演示了ReentrantLock(重入锁)的各种功能,其中就谈到ReentrantLock可以有公平锁和非公平锁的不同实现,只要在构造它的时候传入不同的布尔值,继续跟进下源码我们就能发现,关键在
阅读全文