java 并行与并发_并发与并行的区别是什么?
详细请参考:Concurrency vs. Parallelismtutorials.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 并行与并发_并发与并行的区别是什么?相关推荐
- java并行安全吗_并发和并行有什么区别
并发(concurrency)和并行(parallellism) 并发:是指同一个时间段内多个任务同时都在执行,并且都没有执行结束.并发任务强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而 ...
- java线程本地存储_[并发并行]_[C/C++]_[使用线程本地存储Thread Local Storage(TLS)-win32和pthread比较]...
场景: 1. 需要统计某个线程的对象上创建的个数. 2. 当创建的堆空间需要根据线程需要创建和结束时销毁时. 3. 因为范围是线程只能看到自己的存储数据,所以不需要临界区或互斥量来维护自己的堆内存. ...
- 多线程是并行还是并发_并发,并行,线程,进程,异步和同步有相关性吗?
本文翻译自:https://medium.com/swift-india/concurrency-parallelism-threads-processes-async-and-sync-relate ...
- java 防并发_并发:如何防止两个不同类中的两个方法同时运行?
我有一个用例,我必须防止两个不同的类中的两个不同的方法同时运行,即如果类A有方法X而类B有方法Y,我必须确保当methodX被执行时,我在methodX完成之前,不应允许方法Y执行或阻止执行 . cl ...
- java 用户串号_并发时Java HttpSession串号问题
框架为SpringMVC+Mybatis,在用户登录时候保存用户信息到HttpSession中,而后从Session中获取用户的部分信息.在本地测试中没有问题,但是放到真实环境中,用户产生并发则出现S ...
- sql server 并发_并发问题– SQL Server中的理论和实验
sql server 并发 介绍 (Introduction) Intended audience 目标听众 This document is intended for application dev ...
- python并行for循环_通过python并行运行for循环
我有一个进程循环访问IP地址列表并返回有关它们的一些信息.simple for循环工作得很好,我的问题是由于Python的全局解释器锁(GIL)而大规模地运行这个循环.在 我的目标是让这个函数并行运行 ...
- Java并发编程—并发和并行、线程上下文
文章目录 并发和并行 并发和并行的区别 上下文切换 相关问题 为什么循环次数少的情况下,单线程快? 什么时候需要用多线程? 线程上下文切换消耗的时长? 用什么测试的线程上下文?面试回答下面的工具会加分 ...
- 多少并发量算高并发_如何理解:程序、进程、线程、并发、并行、高并发?
作者:大宽宽 链接:http://tinyurl.com/wx5xxho 在这里你可以了解: 为啥大家说的进程的意思有出入? 为啥并发那么难理解? 为啥高并发不仅仅是"高"+&qu ...
最新文章
- WEB登录H3C模拟器
- npm出错的解决方案
- 【摩天好课推荐】2 Python语言入门
- 李嘉诚的四句话,和各位共勉,让我们干了这碗鸡汤吧,共同挑战未来
- Clipboard.js – 现代方式实现复制文本到剪贴板
- tomcat 域名配置、中文域名、别名配置
- android 播放音乐媒体文件(二)
- 通过90行代码学会HTML5 WebSQL的4种基本操作 1
- 已为此响应调用getwriter()_远程过程调用(RPC)
- 机器视觉算法包halcon介绍
- java 生成uuid
- php对接工行sdk,工商银行-银企直连签约流程
- Uncaught Error: Rendered fewer hooks than expected. This may be caused by an accidental early return
- 《羊了个羊》还在火!创始人被制成展牌,竟成母校招生“活广告”?
- 历经一个月研究,发布两款机器人,小白就会python自己制作机器人了
- python 语义similarity_GitHub - samelltiger/word_similarity: 基于《知网》的语义相似度计算 python2.7 API...
- Scrum Master: 应做和不应做的事情
- 4 数据可视化大屏 - 布局: BootStrap 之网格Grid
- 绝地潜兵服务器不稳定,爽快的合作射爆游戏《绝地潜兵》评测评分汇总
- 坐标系标定与位姿估计(旋转矩阵)