美文网首页
并发与并行区别?

并发与并行区别?

作者: 不一样的卡梅利多 | 来源:发表于2019-06-08 17:13 被阅读0次

1、并发与并行,都是为了让计算机同时能够做更多的事情。

2、英语翻译 concurrency (并发)、parallelism(并行)。并发是并行的模拟。

3、计算历史发展,单核cpu,为了达到 “同时能够做更多的事情",让cpu 时间切片来运行
进程或者线程。这样的运行叫concurrency 。

4、并行是为了让并发执行的更快。(三个层次优化)
4.1 提高线程并发执行速度,出现了多核cpu,超线程技术(cpu 的部分组件有备份,比如两个 程序计数器 PC ,其他组件共享),多核处理让系统减少了模拟并发执行的需要。提高了执行效率

4.2 cpu 流水线执行指令,提高了指令的执行速度。-- 并行执行指令。

4.3 单指令,多数据并行(SIMD 并行),一条指令可以产生多个并发的操作。

4.4、程序设计,将有竞争(同步)的任务拆分成小的任务,让小的任务能够并行执行。能够提高程序执行效率 。concurrency ---->parallelism (jdk8 中的stream 使用parallelism处理)

5、并发执行(Dealing),可能需要多个活动间需要协调共享资源,并行(Doing)是独立的执行。

6、由于线程并发执行,线程的开始执行有先后关系。才能使的线程的同步(锁,happen-before)可以实现。(如果是并行,两个线程同时,获取锁。哪一个线程能够获取到锁?-- 同一时刻只能一个线程(cpu)访问同一内存地址,如存在同时有多个线程访问,则会使用总线仲裁来解决冲突)

总结:

从关注的问题点来看,并发需要处理线程间通信或者协调,并行不需通信或者协调,各自执行各自的,不相关。所以再从执行的时间点来看,并发会出现同一时刻,只有一个线程执行的情况。而并行,多个线程同时执行。

参考:
-《深入理解计算机系统》1.9.2
- 《深入理解并行编程》
- Concurrency vs parallelism
- concurrency-is-not-parallelism

相关文章

  • JS异步编程相关知识点

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

  • 2019-08-01

    并行与并发的区别

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

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

  • 异步编程

    并发(concurrency)和并行(parallelism)区别 涉及面试题:并发与并行的区别? 异步和这小节的...

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

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

  • 温故之.NET 中的并行并发概念解析

    这篇文章主要讲解并行与并发的概念,以及它们之间的区别与联系 为了说明白并行与并发的区别,我们举了两个例子。我们先看...

  • iOS 多线程技术总结

    概览 进程与线程的概念 多线程的由来 并行与并发 多线程的实现 串行与并行 线程的几种状态 串行队列与并发队列区别...

  • 2018-05-18java多线程

    并行与并发的区别 并行:多个线程同时进行,要依赖多个cpu实现,并发:cpu在线程之间切换,宏观上实现并行 1.线...

  • GCD篇(1)

    GCD的队列有两种,一种是串行队列,一种是并发队列。 并行与并发的区别 并发(concurrency) 并行(pa...

  • 并发与并行区别?

    1、并发与并行,都是为了让计算机同时能够做更多的事情。 2、英语翻译 concurrency (并发)、paral...

网友评论

      本文标题:并发与并行区别?

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