博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java并发和并行的区别
阅读量:6703 次
发布时间:2019-06-25

本文共 1243 字,大约阅读时间需要 4 分钟。

hot3.png

并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。

在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。

并发,是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序。

------------------------------------------------------------------

并行,是每个cpu运行一个程序。

打个比方。并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。

①程序与计算不再一一对应,一个程序副本可以有多个计算

②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。
③并发程序在执行中是走走停停,断续推进的。

在网络服务器上,并发是指同一时刻能处理的连接数,比如,服务器能建立1000个TCP连接,即服务器同时维护了1000个socket,这个服务器的并发量就是1000,但是服务器可能只有单核或者8核,16核等,总之对这1000个socket连接的处理也是分时来做的。每个socket服务器处理的时间如果是1s,那么该服务器1s内可以处理完1000个请求,如果每个socket处理100ms的话,那么该服务器1s内可以处理10000个请求。在这里我们先抛出一些概念,如果这些概念都弄清楚了,并发和并行基本就清楚了。会话:在我们用电脑工作时,打开的一个窗口或一个Web页面,我们可以把它叫做一个“会话”,扩展到web服务器上,要维护很多个用户的web页面访问,我们可以认为服务器管理了多个“会话”。并发连接数:网站有时候报错:“HTTP Error 503. The service is unavailable”。但刷一两下又正常,估计很可能是超过网站的最大并发连接数了。并发连接指网络流量管理设备或代理服务器对其业务信息流的处理能力,是能够同时处理的点对点连接的最大数目,它反映出设备对多个连接的访问控制能力和连接状态跟踪能力,这个参数的大小直接影响到设备所能支持的最大信息点数。并发可以理解为服务器最多维护多少个会话数,并行则不一样,它关系的是有多少个会话是在同时进行,假如有两台服务器(进程),可能并行的数量是2,而并发的数量是1000。单核cpu的话只能是并发,多核cpu才能做到并行执行

 

转载于:https://my.oschina.net/u/3115385/blog/1819309

你可能感兴趣的文章
C#模拟网站页面POST数据提交表单(二)--HttpWebRequest以及HttpWebResponse (转)
查看>>
open-falcon ---安装Dashboard时候报错"SSLError: The read operation timed out"
查看>>
FLEX程序设计--事件和事件机制--键盘事件
查看>>
【重构笔记04】重新组织数据(2)
查看>>
在VC中如何才能得到当前屏幕的分辨率
查看>>
一个Linux脚本搞定常用软件的安装
查看>>
[LeetCode] Linked List Random Node 链表随机节点
查看>>
数据仓库专题(15)-数据仓库建设基本原则-实践篇(求补充)
查看>>
关于IoT网络的一些特征的探讨
查看>>
tkinter的GUI设计:界面与逻辑分离(一)-- 初次见面
查看>>
拓扑学中凝聚点的几个等价定义
查看>>
64.5. PHP mail()
查看>>
iOS微信6.5.19可生成自己的赞赏码
查看>>
你的GitHub Guides探险
查看>>
jsch上传文件功能
查看>>
iOS - Swift Closure 闭包
查看>>
新版 Edge 浏览器 Logo 曝光:形状相同,但为黄色背景
查看>>
Mac下遇到 'reading initial communication packet’ 问题
查看>>
手把手教你webpack3(10)Less-Loader配置简述
查看>>
Hadoop设置环境变量注意事项
查看>>