Qt C++ 并发,并行,多线程编程系列1 什么是并发
2024-08-27 17:42:14
什么是并发,并发往简单来说就是两个或多个独立的任务同时发生,在我们的生活中也是随处可见。如果把每个人都当作一个独立的任务,那每个人可以相互独立的生活,这就是并发。
在计算机的系统里面,并发一般有两种,一种是通过任务切换来实现伪并发,这种实现方式是系统在一秒钟内切换运行多个任务,由于切换时间极短,使得我们感觉是多个任务同时进行,其实内部还是按照一定的顺序在执行每个任务。
对于单核处理器,也只能使用这种任务交换的方式来实现并发,
对于多核处理器,可以实现真正的物理并发。下面盗图演示一下
绿色表示一个独立的任务,红色表示另一个任务,当我们的处理是双核或者多核的时候,每个任务都在其中的一个核心上面独立运行,但是当我们的处理器为单核处理器时,这时系统将采用任务交换的方式来实现程序的并行执行,在这期间,会有部分时间使用来处理每个任务的保存和切换的,图中的灰色部分就是每个任务切换是的时间间隔,这个间隔是cpu将上个任务的状态保存,并且读取下个任务的状态。
计算机操作系统对于并发性和并行性的概念给出的定义是:
并行性是指两个或多个事件在同一时刻发生;
并发性是指两个或多个事件在同一时间段内发生。
所以,在我看来,并行,就是两个人操作两个机器,而并发就是一个人同时操作两个机器。
写的不好,欢迎指正。
最新文章
- Android之assets资源
- 如何通过pid快速找出进程的路径
- 记一本关于thinkphp&;&;MVC的好书
- li标签行内元素高度及居中
- C++中关于new及内存地址的思考
- C#中调用API
- BZOJ 3955 Surely You Congest 解题报告
- SSH自动断开连接的原因
- java内存区域分析及java对象的创建
- 改造 vue-cli 脚手架
- C# 实体转为json字符串
- linux安装vsftp服务
- 2198: 小P当志愿者送餐
- GreenDao 使用和数据库升级
- sql条件查询-日期比较(取年月部分)
- Linux下tomcat6.0与jdk安装
- 谷歌Volley网络框架讲解——Network及其实现类
- Maven--archetypeCatalog笔记
- web3.js_1.x.x--API(二)/合约部署与事件调用
- Android DDMS应用