美文网首页
并行与并发

并行与并发

作者: caelansar | 来源:发表于2018-02-02 21:21 被阅读0次

并发(concurrency)

gophercomplex1.jpg

并发描述的是程序的组织结构,指程序要被设计成多个可独立执行的独立程序,并发的关键是程序有处理多个任务的能力,不一定要同时。

正确的并发设计的标准是:使多个操作可以在重叠的时间段内进行(two tasks can start, run, and complete in overlapping time periods)

coroutine.jpg

上图是一个典型的协程程序, task1, task2 是两个不同的任务,代表两个函数,其中黑色块代表某段代码正在执行。注意,这里从始至终,在任何一个时间点上都只有一段代码在执行,但是,由于 task1 和 task2 在重叠的时间段**内执行,所以这是一个支持并发的设计。与并行不同,单核单线程能支持并发。

以网游为例,需要将客户端服务端数据交换的任务和图形绘制的任务拆分为独立子任务,要让交换一下任务就立即绘制一下图形成为可能。

并行(parallelism)

gophercomplex2.jpg

并行是描述程的执行状态,指多个任务同时在多个CPU上执行。

以网游为例,假如在双核机器上执行,和服务器交互的任务独享一个核心,图形绘制的任务独享一个核心。

最后用 Joe Armstrong 的一张图对并发与并行做一个总结:

v2-674f0d37fca4fac1bd2df28a2b78e633_hd.jpg

相关文章

  • 服务器并发设计

    并发与并行 并发技术选型 结构并发 状态并发 集群和负载均衡 并发(Coccurrency)和并行(Paralle...

  • JS异步编程相关知识点

    并发(concurrency)和并行(parallelism)区别 涉及面试题:并发与并行的区别? 并发是宏观概念...

  • Java并发编程整理之并发与并行概念讲解(1)

    Java并发编程整理之并发与并行概念讲解(1) 并发和并行区别 --[百度]:并发(Concurrent)当有多个...

  • 2019-08-01

    并行与并发的区别

  • 并发简介

    并发基本概念 并发与并行 并发指的是程序的结构,而并行指的是程序运行时的状态。 何谓并发(concurrency)...

  • JVM垃圾回收算法与收集器

    相关概念 并行与并发 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发...

  • Go 并发编程

    1 并发与并行 Erlang之父Joe Armstrong曾经以下图解释并发与并行。 并发在图中的解释是两队人排队...

  • 01-并发概述

    并发编程由来: 串行与并行 并发编程目的 并发编程的场景

  • Java Stream的并行实现

    作者: 一字马胡 转载标志 【2017-11-03】 更新日志 并行与并发 关于并发与并行,需要弄清楚的是,并行...

  • 10.1 并发(concurrency)和并行(parallel

    10.1 并发(concurrency)和并行(parallelism)区别问题一:并发与并行的区别? 异步和这小...

网友评论

      本文标题:并行与并发

      本文链接:https://www.haomeiwen.com/subject/cdqyzxtx.html