这份笔记是我2013年下半年以来读“The Art of Multiprocessor Programming”这本书的读书笔记。目前有关共享内存并发同步相关的书籍并不多,但是学术文献却不少,跨越的时间范围也非常长,说明人们一直在做出努力。这本书是这个领域的好书,作为一本好书,它总结了这个领域自发展以来的大量重要成果,介绍了共享内存同步的基本理论,并介绍了大量并发算法和数据结构(主要是无锁算法),包括并发队列、栈、链表、计数器、排序网络、散列、跳表、优先队列等。更为重要的是,本书的作者之一Maurice Herlihy就是并发同步领域的泰斗级人物,本身提出了无等待同步的基本理论,还提出了不少重要的无锁算法,因此这本书的权威性和重要性毋庸置疑。为了加深自己对重要概念的理解,同时受到Hawstein的“把《编程珠玑》读薄”这篇博文的启发和刘未鹏《暗时间》的影响,我决定用自己的语言把这本书的重要内容复述一遍,其中也加入了自己的一些想法和理解,希望这份笔记能对这本书的其他读者有帮助,也希望能对所有对共享内存同步的朋友们有帮助,这份笔记本身也能作为共享内存式同步的教程,但是笔记本身不能取代原书。

由于我才疏学浅缺乏经验,因此其中必定有不少谬误,望各路大牛批评指正多多交流。

目前整本书我已经读完一大半,这份笔记将持续更新,直到完全覆盖所有的18章。

笔记目前放在微盘 http://vdisk.weibo.com/s/qbiRBCQNR0a3

The Art of Multiprocessor Programming读书笔记 (更新至第3章)的更多相关文章

  1. The art of multipropcessor programming 读书笔记-硬件基础2

    本系列是 The art of multipropcessor programming 的读书笔记,在原版图书的基础上,结合 OpenJDK 11 以上的版本的代码进行理解和实现.并根据个人的查资料以 ...

  2. The art of multipropcessor programming 读书笔记-硬件基础1

    本系列是 The art of multipropcessor programming 的读书笔记,在原版图书的基础上,结合 OpenJDK 11 以上的版本的代码进行理解和实现.并根据个人的查资料以 ...

  3. The art of multipropcessor programming 读书笔记-3. 自旋锁与争用(2)

    本系列是 The art of multipropcessor programming 的读书笔记,在原版图书的基础上,结合 OpenJDK 11 以上的版本的代码进行理解和实现.并根据个人的查资料以 ...

  4. Unity Shader入门精要读书笔记(一)序章

    本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...

  5. Head First HTML5 Programming 读书笔记

    1:HTML5引入了简单化的标记,新的语义和媒体元素,另外要依赖于一组支持web应用的js库. 2:关于js 对象是属性的结合 window对象是全局变量. document对象是window的一个属 ...

  6. Java编程思想—读书笔记(更新中)

    第1章 对象导论 1.4 被隐藏的具体实现 访问控制的原因: 让客户端程序员无法触及他们不应该触及的部分(不是用户解决特定问题所需的接口的一部分) 允许库设计者可以改变类内容的工作方式而不用担心会影响 ...

  7. [读书笔记]算法(Sedgewick著)·第一章(2)

    接着上一篇,mindmap更新如下内容. 3.背包.队列和栈 这节主要讲述了这三种数据结构(Bag.Queue.Stack)的API.实现以及链表.Queue和Stack还含有删除元素的方法.并引出了 ...

  8. [读书笔记]算法(Sedgewick著)·第一章(1)

    到家放松放松之后就开始学习算法了,手里拿的是拿的是一本Robert Sedgewick的橙皮书<算法(第四版)>的.这本书与导论那本书的不同之处在于轻数学思想.重实现,也就是说这是一本很不 ...

  9. Linux读书笔记第三、四章

    第三章 主要内容: 进程和线程 进程的生命周期 进程的创建 进程的终止 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程和线程的管理操作(比如,创建,销毁等)都是有内核来实现的. Li ...

随机推荐

  1. Kubernetes 1.6新特性

    Kubernetes 1.6已结发布,包括9个Stable特性.12个Beta特性.8个Alpha特性,共29个新特性.Kubernetes 1.6重点关注集群规模扩展和自动化.目前最多支持5000个 ...

  2. Python自动化之跨域访问jsonp

    这里提到了JSONP,那有人就问了,它同JSON有什么区别不同和区别呢,接下我们就来看看,百度百科有以下说明: ''' 1. JSON(JavaScript Object Notation) 是一种轻 ...

  3. 解决JS在url中传递参数时参数包含中文乱码的问题

    1.传参页面JavaScript代码: function go_mark(id,jobname,headimgurl,nickname){ window.location.href = "m ...

  4. P2196 挖地雷

    题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任一处 ...

  5. 50道Java线程面试题(转载)

    1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成 ...

  6. C++ Primer 学习笔记_45_STL实践与分析(19)--泛型算法的结构

    STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用 ...

  7. 清除浮动元素的margin-top失效原因(更改之前的错误)

    //样式代码body,div{ margin:; padding:; } .box1{ background:#900; width:200px; height:200px; margin:20px ...

  8. Linux学习笔记(第五章)

    第五章-常用指令 下达指令: 1.[Tab] 2.man + (指令):显示操作说明 开头代号 man page 常用按键

  9. Angular vs. React - the tie breaker

    https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker

  10. Oracle单节点_Grid_Infrastructure_DB_安装过程图解(三/三)

    接上文: Oracle单节点_Grid_Infrastructure_DB_安装过程图解(二/三)