什么是并发,什么是并行,什么是并发编程,什么是并行编程?
并行(parallellism):
并行是指两个或者多个事件在同一时刻发生,时间点上同时。
在多台处理器上同时处理多个任务 ,一个实体一个事件。
并行就是吃一盘菜,一次只针对一盘
并发(concurrency) :
并发是指两个或多个事件在同一时间间隔发生。
在一台处理器上“同时”处理多个任务 。同时—指时间片轮转交替执行。
并发就是吃一桌子菜,这里夹夹那里夹夹
[引申资料--并发系列]
并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。
在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
①程序与计算不再一一对应,一个程序副本可以有多个计算
②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。
③并发程序在执行中是走走停停,断续推进的。
在网络服务器上,并发是指同一时刻能处理的连接数,比如,服务器能建立1000个TCP连接,即服务器同时维护了1000个socket,这个服务器的并发量就是1000,但是服务器可能只有单核或者8核,16核等,总之对这1000个socket连接的处理也是分时来做的。每个socket服务器处理的时间如果是1s,那么该服务器1s内可以处理完1000个请求,如果每个socket处理100ms的话,那么该服务器1s内可以处理10000个请求。
吞吐量与带宽的区分
吞吐量和带宽是很容易搞混的一个词,两者的单位都是Mbps。
吞吐量:throughput; 带宽:Max net bitrate。
当讨论通信链路的
带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码在计算机网络中又称为线速。可以说以太网的带宽是10Mbps。但是需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。通常更倾向于
用“吞吐量”一词来表示一个系统的测试性能。这样,因为实现受各种低效率因素的影响,所以由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发送数据。
转载请注明原文地址: https://ju.6miu.com/read-1203881.html