Linux C/C++并发编程实战(0)谈谈并发与并行
作为并发编程的第一讲,比较轻松,我们先来谈谈什么是并发和并行。
并发(Concurrency)是指一个处理器同时处理多个任务。
并行(Parallelism)是指多个处理器或者是多核的处理器同时处理多个不同的任务。
并发是逻辑上的同时发生(simultaneous),实际是将cpu划分成不同的时间片交替执行多个任务,外界看来就像多个任务同时执行;而并行是物理上的同时发生。
来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。
并行指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。

并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点的坑,一定会用两个小时。

并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。
当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时运行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态。

当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行。

相关文章:
Linux C/C++并发编程实战(0)谈谈并发与并行
作为并发编程的第一讲,比较轻松,我们先来谈谈什么是并发和并行。 并发(Concurrency)是指一个处理器同时处理多个任务。 并行(Parallelism)是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发…...
2023年5月天津/南京/成都/深圳CDGA/CDGP数据治理认证报名
6月18日DAMA-CDGA/CDGP数据治理认证考试开放报名中! 考试开放地区:北京、上海、广州、深圳、长沙、呼和浩特、杭州、南京、济南、成都、西安。其他地区凑人数中… DAMA-CDGA/CDGP数据治理认证班进行中,报名从速! DAMA认证为数据管…...
【MySQL】MySQL批量插入测试数据的几种方式
文章目录 前言一、表二、使用函数生成设置允许创建函数产生随机字符串产生随机数字 三、创建存储过程插入角色表插入用户表 四、执行存储过程小结五、使用 Navicat自带的数据生成 前言 在开发过程中我们不管是用来测试性能还是在生产环境中页面展示好看一点, 又或者学习验证某…...
PowerShell install 一键部署virtualbox
VirtualBox 前言 VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public Licens…...
CTF权威指南 笔记 -第四章Linux安全机制-4.1-Stack Canaries
目录 Stack Canaries 简介 我们进行简单的例子 64 32 checksec Stack Canaries 是对抗栈溢出攻击的技术 SSP安全机制 Canary 的值 栈上的一个随机数 在程序启动时 随机生成并且保存在比返回地址更低值 栈溢出是从低地址向高地址进行溢出 如果攻击者要攻击 就一定要覆…...
KDZD400Q便携式三氯乙烯浓度检测仪
一、产品概述 检测仪用于快速检测多种气体浓度、温湿度测量并超标报警的场合。采用2.31寸高清彩屏实时显示,选用进口品牌的气体传感器,主要检测原理有:电化学、红外、催化燃烧、热导、PID 光离子等。 可以检测管道中或受限空间、大气环境中的…...
C++11 部分新特性
1. 关键字和语法 1.1 nullptr 空指针,能够和整数0进行区别,因为#define NULL 0 1.2 类中非静态成员变量定义时初始化 & 初始化列表 1.3 auto 可推导出右值类型,从而得知左边变量类型。 简单使用示例: auto func() {retur…...
selenium通过performance log获取状态码,Conten-Type,以及重定向路径
selenium的官方不提供获取状态码,Conten-Type,以及重定向路径的方法,并且官方说这些功能将来也不会有。java - How to get HTTP Response Code using Selenium WebDriver - Stack Overflow 非官方的方法大概有下面几种 1.通过requests重新请…...
GL绘制自定义线条3_自定义线帽
安卓Path搭配Paint可以设置线帽,我想能不能把我自己的线条绘制Demo也加上类似的功能。 线头规则描述: 1、设一个线宽一半的线段,坐标为(0, 0)到(-lineWidth / 2, 0)。 2、设步骤1的线段有一垂直于它的向量(0,1),然后传…...
【AGC】新版鸿蒙崩溃SDK集成使用方法
【背景】 我们知道AGC的Crash SDK都是需要强制集成华为分析SDK的,在使用时的崩溃数据上报都要依靠分析服务来完成,这就容易受到限制,有时出现无数据的情况就要依次排查崩溃SDK与分析SDK,比较麻烦。而就在不久前,鸿蒙崩…...
vue-7:组件库(移动端vant)(PC端element)
移动端vant 插件安装(按需导入) 重启生效 # 通过 npm 安装 npm i unplugin-vue-components -D# 通过 yarn 安装 yarn add unplugin-vue-components -D 导入基于 vite 的项目: 如果是基于 vite 的项目,在 vite.config.js 文件中…...
JavaScript中splice()、slice()、split()三种方法的区别,及使用详细
简介:splice、slice、split是JavaScript中,比较常用的三个数组方法,表面看起来有点相像,用处却大不相同,今天就来分别介绍下它们的用法。 1、splice()方法 splice方法可以用来删除数组中的元素,或者向数组…...
Linux更新操作系统Openssh版本9.3p1(源码编译安装)
Linux更新操作系统Openssh版本9.3p1(源码编译安装) 部署前准备 安装依赖 yum install -y gcc gcc-c glibc make autoconf openssl openssl-devel pcre-devel pam-develyum install -y pam* zlib* openssh-9.3p1.tar.gzopenssl-3.1.0.tar.gz备份文件 cp /etc/pam.d/sshd /etc/…...
MS COCO数据集介绍
MS COCO数据集介绍 MS COCO全称是Microsoft Common Objects in Context,是由微软开发维护的大型图像数据集,包括不同检测任务: Object Detection([主要处理人、车、大象等]) DensePose(姿态密度检测&…...
Java之线程池
目录 一.上节复习 1.阻塞队列 二.线程池 1.什么是线程池 2.为什么要使用线程池 3.JDK中的线程池 三.工厂模式 1.工厂模式的目的 四.使用线程池 1.submit()方法 2.模拟两个阶段任务的执行 五.自定义一个线程池 六.JDK提供线程池的详解 1.如何自定义一个线程池? 2.创…...
让你的网站变得更智能 - B2 Pro主题问答模块新增OpenAI ChatGPT机器人自动回答功能
作为一个网站管理员,你一定会希望能够给你的用户提供更多、更好的服务。那么,你是否曾经想过为你的B2 Pro主题问答模块新增一个智能机器人自动回答功能呢?相信你一定想要这个功能,因为它能够大大提升你网站的用户体验。 现在,我们为你提供了一个好消息。我们已经为B2 Pro…...
仓库信息管理系统设计与实现
一、数据库设计 1.数据库模型设计概览 2.数据库表设计 ①depository 描述: 该表存储仓库的信息,比如仓库名称,仓库地址和仓库介绍 表结构: 序号 字段名 数据类型 主键 非空 默认值 描述 1 id INT(10) 是 是 2…...
初识Java多线程编程
文章目录 一、线程的状态二、线程的常见属性三、多线程编程Thread类常用构造方法1.继承Thread类2.实现Runnable接口3.匿名内部类实现4.lambda 表达式创建 Runnable 子类对象 四、线程的常见方法 一、线程的状态 //线程的状态是一个枚举类型 Thread.State public class ThreadS…...
最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书实例分析
随着水资源开发利用量不断增大,全国废污水排放量与日俱增,部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理,超标排污、未经同意私设排污口等问题逐步显现,已威胁到供水安全、水环境安全和水生态安全&#x…...
awk指令的详细指南
目录 工作原理 命令格式 awk常见的内建变量(可直接用)如下所示 按行输出文本 按字段输出文本 通过管道、双引号调用 Shell 命令 示例 CPU使用率 数组 编辑统计文件的内容出现的次数 使用awk 统计secure 访问日志中每个客户端IP的出现次数? …...
别再让RAG乱给答案了!手把手教你用Cohere Rerank给LangChain检索结果‘排座次’
用Cohere Rerank重构LangChain检索逻辑:从混沌到精准的实战指南 当你发现自己的RAG系统开始像醉酒的水手一样胡言乱语时,是时候给那些混乱的检索结果"排座次"了。作为一名长期与LangChain打交道的开发者,我经历过无数次检索结果相关…...
FRCRN语音增强工具实操手册:批量处理WAV文件的Shell脚本示例
FRCRN语音增强工具实操手册:批量处理WAV文件的Shell脚本示例 你是不是也遇到过这样的烦恼?手头有一堆录音文件,背景里混杂着键盘声、空调声、甚至窗外的车流声,想提取清晰的人声简直是一场耳朵的折磨。或者,你正在处理…...
小红书面试官怒批:“自己骂自己?你连Agent反思机制都没搞懂!” 高频真题拿分秘籍在此!
本文深入解析了Agent的反思机制,阐述了其为何重要(提升LLM输出质量,避免初版缺陷)及实现方式(生成->评估->改进的核心循环,通过特定Prompt设计)。文章对比了步骤级与任务级反思的优劣及适…...
Vivado+Vitis双剑合璧:从零构建Zynq-7020的SD卡固化系统(避坑‘导出硬件平台’与‘FSBL’)
Vivado与Vitis协同设计:Zynq-7020 SD卡启动全流程精解 在嵌入式系统开发中,Xilinx Zynq系列SoC因其ARM处理器与FPGA的紧密结合而广受欢迎。然而,从硬件设计到最终系统启动的完整流程中,Vivado与Vitis工具链的协同工作往往成为开发…...
《Python大数据分析与挖掘实战》完整案例演示系统——基于Streamlit的全交互式教学平台
一、引言 在大数据时代,Python数据分析与挖掘已成为数据科学领域的核心技能。无论是电商平台的用户行为分析、金融风控的信用评估,还是社交网络的影响力分析,数据挖掘技术都在发挥着不可替代的作用。然而,对于初学者而言…...
【AIAgent架构核心机密】:基于237个真实项目验证的目标分解熵值模型(附可运行评估脚本)
第一章:目标分解在AIAgent架构中的战略定位 2026奇点智能技术大会(https://ml-summit.org) 目标分解并非AI Agent开发中的辅助技巧,而是其认知架构的底层编排范式。它将高层任务语义(如“策划一场低碳主题的社区科普活动”)系统性…...
【词汇专栏】扩散模型(Diffusion Model):AI 是怎么“画“出一张图的?
扩散模型(Diffusion Model):AI 是怎么"画"出一张图的?你输入一句话,AI 生成了一张精美的图片。这背后不是什么神奇魔法,而是一个极其优雅的数学过程——先把图片"毁掉",再学…...
别再死记硬背命令了!用PHPStudy本地复现BUUCTF的ACTF2020 Exec命令注入漏洞
从零构建命令注入实验场:PHPStudy实战ACTF2020 Exec漏洞复现与防御 当你第一次听说"命令注入漏洞"时,脑海中浮现的是不是一堆晦涩难懂的符号和命令行操作?作为安全初学者,我完全理解那种面对; | &等符号时的茫然感。…...
[Flask]SSTI漏洞实战:从原理到buuctf环境变量泄露的完整利用链
1. Flask SSTI漏洞初探:为什么字符串能变成武器? 第一次接触Flask SSTI漏洞时,我盯着{{7*7}}返回的49愣了半天——这明明是个计算器功能,怎么就成漏洞了?后来在BUUCTF实战中踩过几次坑才明白,模板引擎的&qu…...
【HFP】规范精讲[22]: 蓝牙语音音质的度量衡——HFP质量指标体系深度解析与实战应用
在蓝牙语音设备的研发、生产和验收过程中,如何科学、准确地评估音质好坏?为什么同样支持HFP的耳机,有的通话清晰自然,有的却杂音明显、音量失衡?这背后离不开一套统一、规范的质量指标体系。HFP(Hands-Free…...
