`

并发&并行

 
阅读更多

做并发编程之前,必须首先理解什么是并发,什么是并行,什么是并发编程,什么是并行编程。

 

并发(concurrency)和并行(parallellism)是:

 

解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。

解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。

解释三:在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群

所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。

 

 

所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,而先后进入队列排队等候执行。

并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。

并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。


并发,是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序。


并行,是每个cpu运行一个程序。

 

打个比方。并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。

 

ref: http://ifeve.com/parallel_and_con/

ref: http://3961409.blog.51cto.com/3951409/759708

  • 大小: 12.2 KB
  • 大小: 11.3 KB
分享到:
评论

相关推荐

    并发与并行

    在IT领域,"并发与并行"是两个重要的概念,特别是在多核处理器和分布式系统中。它们涉及到如何高效地利用计算资源,以提高程序的执行效率。本文将深入探讨这两个概念,以及相关的工具和技术。 首先,我们要理解并发...

    web并发&压力测试工具http_loadWin32

    它采用了并行复用的执行策略,这意味着多个请求可以同时发送到服务器,从而模拟真实的高并发访问场景。这种并行性使得测试结果更接近实际网络环境中的用户行为,帮助开发者和运维人员了解系统在繁忙情况下的表现。 ...

    并发和并行以及他们的区别

    并发编程和并行计算是计算机科学中的两个重要概念,它们都是为了提高系统效率和资源利用率。在多任务处理和高性能计算领域,理解并发和并行的区别至关重要。 **并发(Concurrency)**: 并发主要关注的是任务的执行...

    什么是并发、并行.xmind

    什么是并发、并行

    go并发(并行)机制.pdf

    并发与并行是计算机科学中的核心概念,它们让程序能够同时处理多个任务,有效提高了资源利用率和程序效率。 在并发方面,Go语言使用goroutine来实现轻量级线程。与传统的操作系统线程相比,goroutine的创建和调度的...

    软件工程中的并发与并行编程1.pptx

    ### 软件工程中的并发与并行编程 #### 第1章 简介 **软件工程定义** 软件工程是一门系统性地研究、应用软件开发和维护的方法和技术的学科。它涉及到软件项目的整个生命周期,包括需求分析、设计、编码、测试、...

    软件工程中的并发与并行编程.pptx

    ### 软件工程中的并发与并行编程 #### 第1章 简介 **软件工程定义** 软件工程是一门系统性地研究、应用软件开发和维护的方法和技术的学科。它涉及到软件项目的整个生命周期,包括需求分析、设计、编码、测试、...

    软件工程中的并发与并行计算.pptx

    ### 软件工程中的并发与并行计算 #### 第1章:软件工程中的并发与并行计算简介 **并发与并行计算定义** - **并发**:指多个任务在宏观上交替执行的过程,通常指的是在单个处理器上通过时间分割的方式让多个任务看...

    15个Python的并发和并行编程的代码示例集合.docx

    在Python编程中,并发和并行编程是提升程序性能的关键技术。这些技术允许程序同时执行多个任务,从而充分利用多核处理器的能力。以下是对给定文件中提供的五个不同代码示例的详细解释: 1. **多线程实现并发**: ...

    软件工程中的并发与并行计算1.pptx

    软件工程中的并发与并行计算1.pptx

    30 python算法代码示例(并发和并行算法 YOLO算法).docx

    本资源提供了30个Python算法代码示例,涵盖了并发和并行算法、YOLO算法等多种领域。其中,YOLO算法是一种常用的目标检测算法,能够实时检测图像或视频中的目标对象。本资源提供了多个使用YOLO算法的Python代码示例,...

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

    并行是并发的一种特殊情况,或者说,并发是并行的一个更为广泛的术语。 并发编程中的三大特性:可见性、有序性和原子性,是多线程编程中主要的并发问题来源。这些特性是理解和规避并发编程中Bug的关键。 可见性...

    java乐器源码-PopularBlogSites:个人收集的觉得不错的技术站点或技术博客

    java乐器源码 流行技术博客站点收录 ...并发&并行 分布式系统、高性能网站架构 大数据、搜索、推荐 编程范式 通用算法 人工智能 & 机器学习 运维&脚本&工具 Netty Python IaaS & PaaS Redis监控: 应用监控

    软件工程中的并发控制与并行处理.pptx

    ### 软件工程中的并发控制与并行处理 #### 第1章 简介 在软件工程领域,**并发控制**与**并行处理**是两个极为关键的概念,它们对于提升系统的性能、效率和用户体验有着重要作用。 ##### 并发控制与并行处理的...

    并行计算--并发构造纵览

    这篇博客文章“并行计算--并发构造纵览”很可能探讨了并行计算的基础概念、并发模型以及实际应用。 并发可以分为两种主要类型:时间片轮转并发和真正并行。时间片轮转并发在单个处理器上模拟多任务,通过快速切换...

    并行最短路径算法Dijkstra

    (2)并发性分析:最外层顺序执行,内层的两个循环实现并发。 (3)线程处理:生成n个线程,2000个数据。n-2个线程分配给当前始终点最短路径的计算,其中(n-2)/2个线程求最近顶点,(n-2)/2个线程更新最短路径数组。...

Global site tag (gtag.js) - Google Analytics