首页/新闻资讯/正文详情

操作系统学习笔记(一) 并发与并行、同步与异步,阻塞与非阻塞

发布时间:2026/9/27 9:02:26 来源:云帆数科 栏目:资讯中心
操作系统学习笔记(一) 并发与并行、同步与异步,阻塞与非阻塞
一、并发与并行并发多个任务在同一时间段内都被处理过可能由一个执行单元轮流处理也可能由多个执行单元同时完成。并行同一时刻有多个执行单元真正同时执行多个任务。核心区别在与同一刻时间是否真的有多件时间在被共同处理并行一定是并发并发不一定是并行单个执行单元(线程/协程)同一时刻只能处理一个任务但是可以通过轮流处理使得多个任务并发地被处理以下场景属于并发但不属于并行一个线程内的多个协程处理多件不同的任务使用CPython解释器时处理纯计算任务时同一进程内的多个线程处理不同的任务单核CPU机器中多个线程共同执行多个计算任务现实中的例子并发一个员工被委派了多个任务(任务一天干不完)其可以每天的上午干事件A每天的下午干事件B在员工的主管眼里这两个事情每天都有进展但是这个员工同一时刻显然内只能干一件事并行多个员工被委派了一个大任务的不同子任务同一时刻内(如果员工没在摸鱼)多个子任务是在被同时推进的二、同步与异步同步调用调用方发起请求后必须等到调用返回或结果可用才能继续原来的后续逻辑。异步调用调用方发起请求后不原地等待最终结果而是立即返回后续逻辑可以继续最终结果在未来通过其他方式回调、事件、Future/Promise、消息或轮询等获取。核心区别在与是原地等待最终结果完成再接着干自己的活还是立马继续干自己的活不等待最终结果现实中的例子同步线下购物一手交钱一手交货交完钱后拿到货前你一般不会跑去干别的事情异步线上购物先交钱下发订单货一段时间后快递到你家门口货到之前你完全可以干别的货到了有快递员通知你三、阻塞与非阻塞阻塞 执行单元发起一个 I/O 调用如果这个操作不能立即完成调用不会返回执行单元被挂起直到 I/O 完成、出错或被中断。非阻塞执行单元发起一个 I/O 调用无论操作有没有立即完成调用立即返回。如果没就绪就返回“暂时不可用”之类的状态比如 EAGAIN。执行单元不会因为这次 I/O 调用被挂起。核心区别在与等待I/O的过程中执行单元是否挂起同步与异步、阻塞与非阻塞的区别同步与异步侧重点在与调用方如何拿到任务结果阻塞和非阻塞重点在与执行单元遇到需要等待的I/O操作时是挂起还是不挂起异步通常意味着“发起时非阻塞”因为调用方可以立刻获得一个调用结果(非最终调用结果)但其不等于“整个过程都非阻塞”因为在等待最终结果的过程中为了节省计算资源可以主动让执行单元挂起组合发起时等待结果时例子同步阻塞不返回挂起普通read()没数据 read()函数不立刻返回而是等到数据准备好后再返回等待期间执行单元挂起同步非阻塞立即返回不挂起自己轮询非阻塞read()while重试read()函数直接返回但是返回的是暂时不可用或者未准备好执行单元不被挂起而是一直轮询数据准备状况异步非阻塞立即返回不挂起等回调/事件io_uring 事件循环、Node.js 回调调用io_uring后立刻返回任务完成后通知执行单元异步阻塞立即返回挂起等待完成异步I/O本身其实通常是非阻塞的其中的阻塞大概率是因为程序员选择了让执行单元挂起本质上是异步非阻塞的一种用发现实例子以在银行办理业务为例同步阻塞站柜台前等业务员办理业务但是由于需要的时间太久所以你直接在柜台上睡着了同步非阻塞问一句“好了没”没好人就走过会儿再来问异步非阻塞取号后去逛街叫号通知你异步阻塞取号后直接睡在大厅等号好了叫你

相关推荐

C# `string.Join` 把 `List<string>` 转为字符串
C# `string.Join` 把 `List<string>` 转为字符串

C# string.Join 把 List<string> 转为字符串 string.Join(分隔符, 可枚举集合)&#xff0c;List<string> 实现了 IEnumerable<string>&#xff0c;可以直接传入。 示例代码 using System; using System.Collections.Generic;class Program {static void Main… · 2026/9/27 9:02:20

Go语言第十三章(互斥锁,读写锁)
Go语言第十三章(互斥锁,读写锁)

互斥锁与读写锁 上一篇用 channel 在协程之间传数据。 有时协程要共改同一块内存——比如几个协程一起往同一个切片里 append。这时通道不是唯一答案&#xff0c;标准库 sync 里的锁也很常用。 入门先记住三件事&#xff1a; 互斥锁 Mutex&#xff1a;同一时刻只允许一个协程进… · 2026/9/27 9:02:14

wp-calypso Stats Modules 模块化统计组件架构实战指南
wp-calypso Stats Modules 模块化统计组件架构实战指南

前端CMS 【免费下载链接】wp-calypso The JavaScript and API powered WordPress.com 项目地址&#xff1a; https://gitcode.com/gh_mirrors/wp/wp-calypso 点击查看 免费下载 导读 本指南围绕 wp-calypso 中 client/my-sites/stats/features/modules 目录下的 Stats Module… · 2026/9/27 9:02:08

嵌入式驱动开发核心解析:从裸机寄存器到Linux设备树
嵌入式驱动开发核心解析:从裸机寄存器到Linux设备树

都说嵌入式是个坑&#xff0c;可每年还是有一堆人往里头跳。我这几年一直在跟嵌入式驱动打交道&#xff0c;面试过不少应届生&#xff0c;也带过几个新人&#xff0c;发现大家对"驱动开发到底忙啥"这件事&#xff0c;普遍没搞清楚。有的是被网上那些"驱动开发月… · 2026/9/27 11:17:54

开网站程序别瞎写,这套保姆级建站教程让排名飙升
开网站程序别瞎写,这套保姆级建站教程让排名飙升

开网站程序别瞎写,这套保姆级建站教程让排名飙升 网站做好了没人访问,这是最让人头疼的事。代码写得再漂亮,搜索引擎看不见就是白搭。很多设计师转前端的朋友,技术底子不错,但一碰 SEO 就晕。别急,这篇保姆级建站教程专为你定制。… · 2026/9/27 11:17:54

2026最新乌克兰网站设计避坑指南:备案与选型全解析
2026最新乌克兰网站设计避坑指南:备案与选型全解析

2026最新乌克兰网站设计避坑指南:备案与选型全解析 做跨境建站,最怕的不是代码报错,而是政策合规的一头雾水。很多做乌克兰市场的站长,还没写完第一行HTML,就被复杂的备案流程和服务器合规搞得焦头烂额,完全不知道该怎么下手。这种“备案流程一… · 2026/9/27 11:17:48

搞定wordpress的导航菜单,别再被坑建站报价的坑了
搞定wordpress的导航菜单,别再被坑建站报价的坑了

搞定wordpress的导航菜单,别再被坑建站报价的坑了 改个导航菜单位置,建站公司拖了一周还没动静?这种事儿我太熟了。很多甲方拿到 建站报价… · 2026/9/27 11:17:41

网站代码是多少一文搞懂
网站代码是多少一文搞懂

网站代码是多少一文搞懂 域名服务器搞不懂?别慌,新手建站最头疼的就是这俩。今天用大白话,带你一文搞懂,从代码到底层逻辑,全讲透。… · 2026/9/27 11:17:41

ARM+FPGA交期52周?从选型到供应链的实战应对策略
ARM+FPGA交期52周?从选型到供应链的实战应对策略

做硬件的朋友应该都遇到过这种时刻&#xff1a;选型时看中一颗进口ARMFPGA&#xff0c;性能合适、外设齐全、功耗可控&#xff0c;价格也卡在预算线内&#xff0c;高高兴兴把方案定了&#xff0c;画板、调板、联调一路顺风顺水。等到了量产下单那一步&#xff0c;采购悠悠来一句… · 2026/9/27 11:17:29

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介&#xff1a;这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程&#xff0c;从线性调频&#xff08;LFM&#xff09;信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑&#xff0c;面向电子信息工程、计算机、数学等专业学生&#xff0c;适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介&#xff1a;基于PyTorch的多模态虚假新闻检测项目完整代码包&#xff0c;面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者&#xff0c;解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征&#xff0c;以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码