什么是并发,并发往简单来说就是两个或多个独立的任务同时发生,在我们的生活中也是随处可见。如果把每个人都当作一个独立的任务,那每个人可以相互独立的生活,这就是并发。

在计算机的系统里面,并发一般有两种,一种是通过任务切换来实现伪并发,这种实现方式是系统在一秒钟内切换运行多个任务,由于切换时间极短,使得我们感觉是多个任务同时进行,其实内部还是按照一定的顺序在执行每个任务。

对于单核处理器,也只能使用这种任务交换的方式来实现并发,

对于多核处理器,可以实现真正的物理并发。下面盗图演示一下

绿色表示一个独立的任务,红色表示另一个任务,当我们的处理是双核或者多核的时候,每个任务都在其中的一个核心上面独立运行,但是当我们的处理器为单核处理器时,这时系统将采用任务交换的方式来实现程序的并行执行,在这期间,会有部分时间使用来处理每个任务的保存和切换的,图中的灰色部分就是每个任务切换是的时间间隔,这个间隔是cpu将上个任务的状态保存,并且读取下个任务的状态。

计算机操作系统对于并发性和并行性的概念给出的定义是: 
并行性是指两个或多个事件在同一时刻发生; 
并发性是指两个或多个事件在同一时间段内发生。

所以,在我看来,并行,就是两个人操作两个机器,而并发就是一个人同时操作两个机器。

写的不好,欢迎指正。

最新文章

  1. Android之assets资源
  2. 如何通过pid快速找出进程的路径
  3. 记一本关于thinkphp&&MVC的好书
  4. li标签行内元素高度及居中
  5. C++中关于new及内存地址的思考
  6. C#中调用API
  7. BZOJ 3955 Surely You Congest 解题报告
  8. SSH自动断开连接的原因
  9. java内存区域分析及java对象的创建
  10. 改造 vue-cli 脚手架
  11. C# 实体转为json字符串
  12. linux安装vsftp服务
  13. 2198: 小P当志愿者送餐
  14. GreenDao 使用和数据库升级
  15. sql条件查询-日期比较(取年月部分)
  16. Linux下tomcat6.0与jdk安装
  17. 谷歌Volley网络框架讲解——Network及其实现类
  18. Maven--archetypeCatalog笔记
  19. web3.js_1.x.x--API(二)/合约部署与事件调用
  20. Android DDMS应用

热门文章

  1. "应用程序无法正常启动(0xc000007b)。请单击 确定 关闭应用程序。"解决方法
  2. js和.net操作Cookie遇到的问题
  3. 创建properties文件保存在WEB项目的classes文件下
  4. html基础用法(下)
  5. JavaScript编写棋盘覆盖
  6. SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务
  7. oracle net manager 数据传输安全
  8. window系统下pycharm的破解配置
  9. Apache Maven(六):存储库
  10. 微信小程序横向滚动