`
hideto
  • 浏览: 2682397 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

深入理解计算机系统13,并发编程

阅读更多
一个并发程序是由在时间上重叠的一组逻辑流组成的
三种不同的构建并发程序的机制:进程、I/O多路复用和线程

进程是由内核自动调度的,而且因为它们有各自独立的虚拟地址空间,所以要实现共享数据,它们需要显示的IPC机制
事件驱动程序创建它们自己的并发逻辑流,这些逻辑流被模型化为状态机,用I/O多路复用来显示地调度这些流
因为程序运行在一个单一进程中,所以在流之间共享数据速度很快而且很容易
线程是这些方法的综合,同基于进程的流一样,线程是由内核自动调度的
线程运行在一个单一进程的上下文中,因此可以快速而方便地共享数据

无论哪种并发机制,同步对共享数据的并发访问都是一个困难的问题
提出对信号量的P和V操作就是为了帮助解决这个问题
信号量操作可以用来提供对共享数据的互斥访问,也对诸如生产者-消费者程序中共享缓冲区这样的资源访问进行调度

一个函数被称为线程安全的,当且仅当被多个并发线程反复地调用时,它会一直产生正确的结果
四类线程不安全函数:
1,不保护共享变量的函数
2,保持跨越多个调用的状态的函数
3,返回指向静态变量的指针的函数
4,调用线程不安全函数的函数

可重入函数:当它们被多个线程调用时,不会引用任何共享数据

竞争和死锁是并发程序中出现的另一些困难的问题
当程序员错误地假设逻辑流该如何调度时,就会发生竞争
当一个流等待一个永远不会发生的事件时,就会产生死锁

互斥锁加锁顺序规则:如果对于程序中每对互斥锁(s,t),每个既包含s也包含t的线程都按照相同的顺序同时对它们加锁,那么这个程序就是无死锁的
分享到:
评论

相关推荐

    深入理解并发编程

    并发编程是计算机科学中的一个复杂领域,它涉及到同时运行多个任务,以提高程序的性能和效率。它在现代多核处理器和多处理器计算环境中尤其重要,因为这些环境允许并行执行多个计算。并发编程可以用于操作系统、...

    深入理解计算机系统mobi格式,kindle版

    《深入理解计算机系统》是计算机科学领域的一本经典著作,主要涵盖了计算机系统的基础知识和深入原理。这本书由Randal E. Bryant和David R. O'Hallaron合著,旨在帮助读者从硬件到软件,从底层到高层全面理解计算机...

    深入理解计算机系统 第3版 英文版

    《深入理解计算机系统 第3版》是一本由Randal E. Bryant和David R. O'Hallaron编写的计算机科学教材,该书为读者提供了对计算机系统工作原理的深刻见解。本书适合程序员阅读,目的是帮助他们更好地理解计算机系统,...

    01-并发编程之深入理解JMM&并发三大特性(一).pdf

    在深入理解Java内存模型(JMM)及并发三大特性方面,我们需要先建立对多线程、共享内存模型、可见性、...如果对计算机组成原理和操作系统知识感兴趣,可以通过相关课程进行系统性学习,以便对并发编程有更深入的理解。

    深入理解计算机系统(CSAPP) 英文原版(完整版!!!)

    《深入理解计算机系统》(英文原版,Complete Edition)是一本深受全球IT专业人士推崇的经典教材,由Randal E. Bryant和David R. O'Hallaron合著。这本书以深入浅出的方式介绍了计算机系统的各个方面,包括硬件、...

    深入理解计算机系统 (第三版) 英文 epub

    《深入理解计算机系统》(英文版,第三版),也被称为"Computer Systems: A Programmer's Perspective 3rd Edition",是一本深受欢迎的计算机科学教材,旨在帮助程序员从底层角度理解计算机系统的运作机制。...

    深入理解计算机系统原书第三版(超高清)(带目录)(经典书籍)

    综上所述,《深入理解计算机系统》这本书很可能是为了帮助读者深入了解计算机系统的工作原理,特别是在Java编程、JVM管理和Linux操作系统的使用方面提供了深入的技术细节和实践指导。对于希望成为高级软件工程师或...

    深入理解计算机系统,计算机系统结构,计算机系统

    《深入理解计算机系统》是一本深受程序员和计算机硬件工程师喜爱的经典教材,它全面而深入地探讨了计算机系统的各个层面,帮助读者建立起从软件到硬件的完整认知。这本书的知识点广泛且深入,涵盖了许多核心概念和...

    深入理解计算机系统-清晰中文第三版

    深入理解计算机系统-第9章 网络编程.txt 深入理解计算机系统-第10章 安全性与隐私.txt 《深入理解计算机系统》是IT领域的经典之作,其第三版更是将理论与实践紧密结合,旨在帮助程序员、系统管理员以及计算机科学...

    深入理解计算机系统(英文原版)_csapp_

    《深入理解计算机系统》(英文原版,也称为CSAPP) 是一本计算机科学的经典教材,由Randal E. Bryant和David R. O'Hallaron共同撰写。这本书是计算机科学教育的重要资源,尤其对于想要深入理解计算机工作原理的学生和...

    深入理解计算机系统源代码

    总之,《深入理解计算机系统》源代码的分析不仅能够加深对理论知识的理解,还能够提升我们的编程技能。通过实践,我们可以更好地运用这些知识解决实际问题,成为一名更优秀的程序员或计算机科学家。

    深入理解计算机系统课件

    《深入理解计算机系统》是一门涵盖计算机硬件、操作系统、编程语言和系统软件等多个领域的综合性课程。这门课程的目的是帮助学生构建对计算机系统的全面理解,从而更好地进行程序设计和优化。通过学习,我们可以掌握...

    深入理解计算机系统(修订版) 英文原版

    ### 深入理解计算机系统(修订版) 英文原版 #### 书籍概述与重要性 《深入理解计算机系统》是一本经典的计算机科学教材,由Randal E. Bryant和David R. O'Hallaron共同撰写。该书旨在帮助程序员深入理解程序是如何...

    深入理解计算机系统 原书第2版 中文版 完整 (第2共2部分)

    《深入理解计算机系统 原书第2版 》从程序员的视角详细阐述计算机系统的本质概念 并展示这些概念如何实实在在地影响应用程序的正确性 性能和实用性 《深入理解计算机系统 原书第2版 》共12章 主要内容包括信息的表示...

    深入理解计算机系统中文版

    《深入理解计算机系统中文版》是由Randal E.Bryant和David R.O’Hallaron联合编著的计算机科学经典教材。这本书深入介绍了计算机系统的核心原理和概念,涵盖了从底层的数据表示到高级的程序设计和系统管理等各个层面...

    深入理解计算机系统 第三版 csapp 3ed

    ### 深入理解计算机系统 第三版 csapp 3ed #### 一、书籍概述与作者背景 《深入理解计算机系统》第三版(CSAPP 3ed)是一本广泛被计算机科学领域的学生和专业人士所推崇的经典教材。本书由卡内基梅隆大学的两位...

    深入理解计算机系统 + 答案

    《深入理解计算机系统》是计算机科学领域的一本经典著作,由Randal E. Bryant和David R. O'Hallaron合著。这本书旨在帮助程序员、系统管理员以及任何对计算机内部工作原理感兴趣的人,从硬件到软件,全面理解计算机...

    深入理解计算机系统(英文版答案)

    根据给定的文件信息,以下是对标题“深入理解计算机系统(英文版答案)”以及描述和部分内容中所包含知识点的深入解释。 标题和描述中提到的内容,可以理解为是对书籍《深入理解计算机系统》及其英文版答案的概述。这...

    深入理解计算机系统(原书第2版)

    《计算机科学丛书:深入理解计算机系统(原书第2版)》从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理...

Global site tag (gtag.js) - Google Analytics