并发编程:同步与并发对象实现的深度解析
1. 同步的本质
在并发编程领域,一个并发程序由多个实体(如进程、对等节点、传感器、节点等)构成,这些实体为了实现共同目标而相互协作。这种协作得以实现,依赖于实体之间共享的对象,我们将其称为并发对象。从某种角度看,并发对象可以抽象为客户端(即协作实体)共享的服务。
设计和实现并发对象是计算机科学与工程中的一个关键问题。为了确保并发对象始终保持一致性,实体需要对这些对象的访问进行同步。然而,要在一组协作实体之间实现正确的同步并非易事。我们不再处于顺序编程的范畴,顺序计算中使用的方法和途径在设计并发程序时帮助有限。并发编程不仅需要高度的谨慎,还需要掌握其科学基础。特别是当需要应对协作实体或并发对象的故障时,并发编程的难度会显著增加。
2. 核心内容概述
内容主要涵盖六个部分,其中三个部分侧重于基础同步机制和并发对象的构建,另外三个部分则聚焦于同步的基础理论。几乎所有呈现的算法都经过了证明。以下是各部分的简要介绍:
|部分|主要内容|
| ---- | ---- |
|锁基同步|定义可靠异步系统中最重要的同步问题——互斥问题,并介绍多种解决该问题的基础方法,以及传统的同步问题解决和并发对象实现方法,如信号量、监视器和路径表达式的概念|
|原子性概念|介绍并研究原子性的概念及其属性,为并发程序中进程通过访问共享对象进行协作的正确执行概念提供形式化定义|
|无互斥同步|考虑协作实体可能提前停止(崩溃故障)的情况,引入无互斥性和相关的进度条件,如无阻塞性、非阻塞性和无等待性,并关注混合并发对象、无等待实现的典型并发对象等|
|事务内存方法|介绍软件事务内存系统,这是一种
超级会员免费看
订阅专栏 解锁全文

1946

被折叠的 条评论
为什么被折叠?



