`

并发,并行

阅读更多
Q:什么是"并发"?什么是"并行"?

A:俗话说,一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,也就是说只有一颗心,要让它一心多用,同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的是"时间片轮转进程调度算法",它的思想简单介绍如下:在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如10毫秒),这样用户根本感觉不出来CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样。但实际上在任何一个时间内有且仅有一个进程占有CPU。如果一台计算机有多个CPU,情况就不同了,如果进程数小于CPU数,则不同的进程可以分配给不同的CPU来运行,这样,多个进程就是真正同时运行的,这便是并行。但如果进程数大于CPU数,则仍然需要使用并发技术。在Windows中,进行CPU分配是以线程为单位的,一个进程可能由多个线程组成,这时情况更加复杂,但简单地说,有如下关系: 总线程数 <= CPU数量:并行运行 总线程数 > CPU数量:并发运行 并行运行的效率显然高于并发运行,所以在多CPU的计算机中,多任务的效率比较高。但是,如果在多CPU计算机中只运行一个进程(线程),就不能发挥多CPU的优势。值得注意的是,Windows 9x并不支持多CPU系统,如果在多CPU系统上安装Windows 9x,有再多的CPU也是白搭。

转:http://www.200818.com/html/xzzq/dbsbcl/ndjj/11133.html
分享到:
评论

相关推荐

    基于GPU多流并发并行模型的NDVI提取算法.pdf

    【基于GPU多流并发并行模型的NDVI提取算法】是一种优化遥感图像处理中NDVI(归一化差分植被指数)计算的方法。NDVI是衡量植被覆盖度的重要指标,广泛应用于农业、林业、环境监测等领域。在传统的基于GPU多线程并行...

    [并发并行]_[初级]_[C++实现sychronized方式的对象锁]

    在IT行业中,尤其是在多线程编程领域,"并发并行"是至关重要的概念。这篇初级教程专注于使用C++实现同步机制中的对象锁,这在处理多线程共享资源时非常关键。C++标准库提供了多种工具来支持并发编程,其中包括`...

    ruby中并发并行与全局锁详解

    本文主要给大家介绍了关于ruby并发并行和全局锁的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 并发和并行 在开发时,我们经常会接触到两个概念: 并发和并行,几乎所有谈到并发和...

    并发与并行

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

    C#并行编程高级教程(中文版)

    C#中的并行编程主要关注并行性,但同时也涉及到并发机制。 #### 1.2 任务并行库(TPL) Task Parallel Library (TPL) 是C#并行编程的核心组件,它提供了一种声明式的方法来表达并行操作,简化了多线程编程的复杂度。...

    高并发总结

    从同步异步的选择,到并发并行的理解,再到线程管理和无锁编程,每个环节都对系统的效率和稳定性产生深远影响。在实际应用中,合理运用这些知识,可以有效提升系统的并发处理能力,适应高流量的挑战。

    go并发(并行)机制.pdf

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

    Java并发的基础知识.docx

    本文将深入探讨Java并发基础知识,包括并发的目的、并发编程的缺点、减少上下文切换的策略、并行与并发的区别、同步与异步的概念,以及线程的管理方式。 一、并发的目的 并发的主要目的是充分利用多核CPU的计算能力...

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

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

    什么是并发、并行.xmind

    什么是并发、并行

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

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

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

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

    基于Java多线程技术的网络编程.pdf

    Java的多线程机制可以方便地减少并发并行程序设计的困难,提高程序执行效率。 Java多线程技术的应用包括: 1. 网络编程:Java的多线程技术可以用于开发支持多用户的网络聊天室、即时通信系统、在线游戏等应用程序...

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

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

    python3并行计算测试demo

    并发与并行的区别 并发:concurrency。单个cpu+多道技术就可以实现并发 并行:parallel:同时运行,只有具备多个cpu才能实现并行 测试环境 os:64位win10 anconda3:1915 64 bit python:3.7.3

    Python开发笔记.docx

    总的来说,Python开发涉及到的知识点广泛,包括并发并行模型、服务器架构设计、线程同步机制以及进程管理等,这些都是构建高性能、高可用系统所必需的基础知识。深入理解和熟练运用这些概念,能帮助开发者在面试、...

    lab-concurrente:本课题并发与并行程序设计的实验室实践

    在IT行业中,并发和并行程序设计是两...实验室的每个练习都可能是对上述概念的深入探讨,通过实际操作加深对并发并行编程的理解。实践过程中,学生应学会如何编写安全、高效的并发代码,以应对复杂多变的现代计算环境。

Global site tag (gtag.js) - Google Analytics