详细请参考:Concurrency vs. Parallelism​tutorials.jenkov.com

【Concurrency】

并发的反义词是顺序,concurrency vs sequential,例如:

顺序处理:

你陪女朋友先看电影(Task1),看完后陪女朋友到花店买了一束花(Task2),然后陪女朋友去西餐厅吃烛光晚餐(Task3),这就是“顺序处理”,因为整个过程中只有你这一个处理器,事情只能一件一件的做(要么是你亲自做,要么你要等别人做)。Task1你要花2小时,Task2等花做好你要花30分钟,Task3等菜做好要30分钟,从你开始看电影到开始吃饭,全程需要3小时(假设走路不算时间)。

并发处理:

你陪女朋友先看电影(Task1),同时打电话给花店预定一束花,花店安排人员在20:00送到西餐厅(Task2);同时你打电话给西餐定预定20:00的浪漫烛光晚餐,西餐厅开始给你准备晚餐(Task3);等到你电影看完跑到西餐厅,花也送到了,晚餐也准备好了,你跑过去直接献花吃饭然后开房即可,这就是并发处理。Task1还是2小时,但Task2和Task3也在这2小时完成了,从你开始看电影到开始吃饭,全程只需要2小时,3个任务是并发完成的。秘诀就是有3个处理器了:你、花店、餐厅在同一个时间段内都在做各自的任务。

【Parallelism】

并行的反义词是串行,Parallelism vs Serial,比如说给你一个100万的整形数组,挑出其中最小的值。

串行处理

从数组的第一个开始扫描到最后一个,类似冒泡排序一样

并行处理

将数组分为10组,每组10万个整形,同时扫描10组得到10个数值,然后再将这10个数值排列一下。

上面这个简单的例子也可以看出,串行改为并行其实并不那么简单,涉及到任务分解(有先后依赖的任务就不能做到并行)、任务运行(可能要考虑互斥、锁、共享等)、结果合并。

以Java的并行垃圾回收器Parallel为例,标记阶段、回收阶段各自可以多线程并行,但不能将回收阶段和标记阶段一起并行,因为回收阶段的处理依赖标记阶段的结果。

==========2019.01.17============

两个词很好的说明了并发和并行的区别:

Parallel Computing:并行计算

Concurrent programming:并发编程

java 并行与并发_并发与并行的区别是什么?相关推荐

  1. java并行安全吗_并发和并行有什么区别

    并发(concurrency)和并行(parallellism) 并发:是指同一个时间段内多个任务同时都在执行,并且都没有执行结束.并发任务强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而 ...

  2. java线程本地存储_[并发并行]_[C/C++]_[使用线程本地存储Thread Local Storage(TLS)-win32和pthread比较]...

    场景: 1.  需要统计某个线程的对象上创建的个数. 2. 当创建的堆空间需要根据线程需要创建和结束时销毁时. 3. 因为范围是线程只能看到自己的存储数据,所以不需要临界区或互斥量来维护自己的堆内存. ...

  3. 多线程是并行还是并发_并发,并行,线程,进程,异步和同步有相关性吗?

    本文翻译自:https://medium.com/swift-india/concurrency-parallelism-threads-processes-async-and-sync-relate ...

  4. java 防并发_并发:如何防止两个不同类中的两个方法同时运行?

    我有一个用例,我必须防止两个不同的类中的两个不同的方法同时运行,即如果类A有方法X而类B有方法Y,我必须确保当methodX被执行时,我在methodX完成之前,不应允许方法Y执行或阻止执行 . cl ...

  5. java 用户串号_并发时Java HttpSession串号问题

    框架为SpringMVC+Mybatis,在用户登录时候保存用户信息到HttpSession中,而后从Session中获取用户的部分信息.在本地测试中没有问题,但是放到真实环境中,用户产生并发则出现S ...

  6. sql server 并发_并发问题– SQL Server中的理论和实验

    sql server 并发 介绍 (Introduction) Intended audience 目标听众 This document is intended for application dev ...

  7. python并行for循环_通过python并行运行for循环

    我有一个进程循环访问IP地址列表并返回有关它们的一些信息.simple for循环工作得很好,我的问题是由于Python的全局解释器锁(GIL)而大规模地运行这个循环.在 我的目标是让这个函数并行运行 ...

  8. Java并发编程—并发和并行、线程上下文

    文章目录 并发和并行 并发和并行的区别 上下文切换 相关问题 为什么循环次数少的情况下,单线程快? 什么时候需要用多线程? 线程上下文切换消耗的时长? 用什么测试的线程上下文?面试回答下面的工具会加分 ...

  9. 多少并发量算高并发_如何理解:程序、进程、线程、并发、并行、高并发?

    作者:大宽宽 链接:http://tinyurl.com/wx5xxho 在这里你可以了解: 为啥大家说的进程的意思有出入? 为啥并发那么难理解? 为啥高并发不仅仅是"高"+&qu ...

最新文章

  1. WEB登录H3C模拟器
  2. npm出错的解决方案
  3. 【摩天好课推荐】2 Python语言入门
  4. 李嘉诚的四句话,和各位共勉,让我们干了这碗鸡汤吧,共同挑战未来
  5. Clipboard.js – 现代方式实现复制文本到剪贴板
  6. tomcat 域名配置、中文域名、别名配置
  7. android 播放音乐媒体文件(二)
  8. 通过90行代码学会HTML5 WebSQL的4种基本操作 1
  9. 已为此响应调用getwriter()_远程过程调用(RPC)
  10. 机器视觉算法包halcon介绍
  11. java 生成uuid
  12. php对接工行sdk,工商银行-银企直连签约流程
  13. Uncaught Error: Rendered fewer hooks than expected. This may be caused by an accidental early return
  14. 《羊了个羊》还在火!创始人被制成展牌,竟成母校招生“活广告”?
  15. 历经一个月研究,发布两款机器人,小白就会python自己制作机器人了
  16. python 语义similarity_GitHub - samelltiger/word_similarity: 基于《知网》的语义相似度计算 python2.7 API...
  17. Scrum Master: 应做和不应做的事情
  18. 4 数据可视化大屏 - 布局: BootStrap 之网格Grid
  19. 绝地潜兵服务器不稳定,爽快的合作射爆游戏《绝地潜兵》评测评分汇总
  20. 坐标系标定与位姿估计(旋转矩阵)

热门文章

  1. chrome扩展插件拦截修改请求头
  2. SQL语句 清空数据表
  3. 优秀销售代表的四种核心能力
  4. 摄影中简单的测光技巧
  5. 参考答案:关注成本和投资回报率
  6. 2020 年 Linus 有哪些引起“轰动”的时刻
  7. 设计人生的时刻表[zz]
  8. 计算机综合症怎么治,如何防治电脑综合征?
  9. 中国各城市首轮感染高峰期预测!
  10. fman文件管理软件:使用教程初阶_快捷键