5-1阻塞/非阻塞、同步/异步

面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗? BIO,NIO,epoll 同步/异步模型、阻塞/非阻塞模型 同步:当一个同步调用发出后,调用者要一直等待返回结果。通知后,才能进行后续的执行。 异步:当一个异步过程调用发出后,调用者不能立刻得到返回结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。 阻塞:是指调用结果返回前,当前线程会被挂起,即阻塞。 非阻塞:是指即使调用结果没返回,也不会阻塞当前线程。 比喻: 小Q去钓鱼,抛完线后就傻傻的看着有没有动静,有则拉杆(同步阻塞) 小Q去钓鱼,拿鱼网捞一下,有没有鱼立即知道,不用等,直 阅读详情

阻塞/非阻塞、同步/异步

典型的一次IO的两个阶段是什么?数据就绪 和 数据读写

数据就绪:根据系统IO操作的就绪状态

阻塞
非阻塞

数据读写:根据应用程序和内核的交互方式

同步
异步
在这里插入图片描述
同步:调用函数之后,得到程序结果之后,立马往下执行(花费的是程序的时间);
例子:买机票,打车去机场取机票(这个动作花费的是你自己的时间);
编程较为简单;

异步:异步IO接口(sockfd,buf,通知方式(一般是sigio信号)),需要通知方式,不用等程序调用函数返回结果,等待操作系统(内核)将数据放入buf之中,通知程序来处理该函数调用的结果;
例子:买了机票后,快递员将机票从机场送到自己家里(花的是别人的时间)

一个典型的网络IO接口调用,分为两个阶段,分别是“数据就绪” 和 “数据读写”,数据就绪阶段分为阻塞和非阻塞,表现得结果就是,阻塞当前线程或是直接返回。

同步表示A向B请求调用一个网络IO接口时(或者调用某个业务逻辑API接口时),数据的读写都是由请求方A自己来完成的(不管是阻塞还是非阻塞);异步表示A向B请求调用一个网络IO接口时(或者调用某个业务逻辑API接口时),向B传入请求的事件以及事件发生时通知的方式,A就可以处理其它逻辑了,当B监听到事件处理完成后,会用事先约定好的通知方式,通知A处理结果。

阻塞/非阻塞、同步/异步实例

同步、异步、阻塞、非阻塞,以及IO模型的理解 同步和异步 同步 就是你知道你什么时候在做什么,做完一件事情再做下一件事情,因此主动权在自己手里。比如通过等待或轮询,你在某个时间点总是知道结果是怎样的(有数据还是没数据等)。 异步 就是你不知道什么时候会发生什么。比如你注册了多个回调函数,你不知道什么时候会被调用以及被调用的是哪一个回调函数。 阻塞和非阻塞 阻塞:一个调用过程必须完成才返回。对于IO操作,如果IO没有准备好,读取或... 阅读详情

相关推荐

同步/异步,阻塞/非阻塞你真的理解了吗?

  同步和异步   POSIX对同步和异步的定义,同步I/O操作导致进程阻塞,直到I/O操作完成;异步I/O不导致进程阻塞;   还提到了层次的影响和I/O操作的两个阻塞过程。   的概念描述的是用户线程与内核的交互方式(操作系统层面):同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者...

define_LIN的博客 959

java之阻塞非阻塞异步和同步

同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。异步:异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行函数只有在得到结果之后才会返回。非阻塞。

caopengyuan的博客 707

到底该如何理解socket的阻塞/非阻塞/同步/异步

这4个名词的解释网络上有很多种版本和很多种比喻,个人不太喜欢打比方的方式来理解技术问题,因为很难有贴切的比喻,稍不注意就把人带到沟里.我们这里只通过技术模型来理解这4个术语,忽略这些名词广义上的定义,通过分析下面这个具体的场景来分享下我对他们的理解: 场景:假设要通过一个socket发送的数据是5k大小的一段文本,内核的发送缓冲区4k. 首先要搞明白一个基础问题,当我们在socket上

voidccc的专栏 1517

同步与异步、阻塞与非阻塞

对编程中四个概念的理解:同步(Synchronous)、异步(Asynchronous)、阻塞(Blocking)、非阻塞(Non-blocking)。

yunfan 6349

Mamba vs YOLO:目标检测选型指南(附实际项目对比)

本文深入对比了Mamba和YOLO在目标检测领域的性能差异与应用场景。通过实际项目数据,分析了两者在城市交通监控、工业质检等场景下的表现,提供了详细的选型指南和部署优化建议,帮助开发者根据实时性、精度等需求选择最适合的解决方案。

weixin_29062255的博客 369

jason-2卫星介绍及其数据下载

两台仪器发射脉冲宽度均为105.6μs,带宽320MHz(C频段)和320/100MHz(Ku频段),脉冲重复频率1800Hz(Ku频段)和300Hz(C频段),功率78W,数据传输速率22.5kbit/s。共发射了3颗卫星(Jason - 1/2/3),星上有效载荷均主要为雷达高度计和微波辐射计。Jason - 1卫星主要有效载荷为波塞冬 - 2和“贾森微波辐射计”,Jason - 2卫星进行了改进,主要携带了波塞冬 - 3和先进微波辐射计,此外,Jason - 2卫星还携带了“多里斯”系统。

beautyaaaa的博客 1606

一个理解同步异步阻塞非阻塞非常好的解释

作者:知乎用户 链接:https://www.zhihu.com/question/19732473/answer/51734090 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 以linux下 tcp socket编程为例: 阻塞就是 recv/read的时候 socket接收缓冲区要是有数据就读, 没数据我就一直睡觉赖着不走,直到有数据来了

神棍之路 7万+

CameraLink接口详解:从引脚定义到信号传输

本文详细解析了CameraLink接口的物理连接与信号传输机制。从MDR26连接器的引脚定义与镜像关系入手,深入讲解了BASE与MEDIUM模式下的信号映射、LVDS差分传输原理,并强调了屏蔽层处理与端接电阻等关键硬件设计细节。文章结合实战经验,提供了常见图像传输问题的排查思路,是工业视觉领域高速图像传输的实用指南。

weixin_28318011的博客 889

同步、异步、阻塞、非阻塞的区别

要理解这两对概念,首先要明确描述对象同步/异步:描述的是被调用者的执行逻辑(“做事的方式”);阻塞/非阻塞:描述的是调用者的等待状态(“等结果的方式”)。用“A调用B完成任务”的场景具象化:概念对描述主体核心问题同步/异步被调用者BB接到调用后,是否“主动通知”A结果?阻塞/非阻塞调用者AA发出调用后,是否“原地等待”结果?核心区别:被调用者完成任务后,是否会主动通知调用者。分主体记定义:同步/异步看“被调用者是否主动通知”,阻塞/非阻塞看“调用者是否原地等待”;无必然绑定关系。

埃泽漫笔 793

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

2025年从零开始:构建你的首个ComfyUI工作流-ComfyUI入门教程

然而,由于它拥有众多的插件节点,以及较为复杂的操作流程,学习起来相对困难。以前面搭建的文生图工作流为例,首先点击功能区的【保存】,然后你的浏览器会出来一个弹窗,你可以进行文件命名,点击确定后浏览器会下载该文件,也就是带“json”后缀的文件,这样我们的工作流就打包成一份文件了。思考一下前面说的,节点是不是需要下载安装才能使用,而我们复用别人的工作流,他用的节点你不一定下载了,因为目前有600多个节点,你不可能全部下载了吧,所以我们日后使用别人的工作流,你会经常出现这样的问题。

weixin_59486588的博客 1456

同步/异步,阻塞/非阻塞概念深度解析

‍‍原文:https://blog.youkuaiyun.com/lengxiao1993/article/78154467更新:极客重生网络IO作为网络编程核心基础知识,是所以程序员都需要理解掌握的,最近小伙伴在星球群里对这些基本概念理解比较混乱,大多数人可能都没有认真深入去理解过这些基础概念,之前我直播时候说过:内功深厚其实就是对这些基础概念的理解深度,我们学习和工作都是在不断加...

极客重生 3330

论文精读——A Comprehensive Survey of Continual Learning: Theory, Method and Application

为了应对现实世界的动态性,智能系统需要在其整个生命周期中逐步获取、更新、积累并利用知识。这种能力被称为Continue Learning(持续学习)。从广义上讲,持续学习明显受到catastrophic forgetting(灾难性遗忘)的限制,即学习新任务通常会导致旧任务的性能急剧下降。Continue Learning的核心目的有二,其一为(稳定性与可塑性间的权衡),其二为(足够的任务内/任务间泛化能力)。

xsddys的博客 1241

5.1、阻塞/非阻塞、同步/异步(网络IO)

本项目中,使用单例模式创建日志系统,对服务器运行状态、错误信息和访问数据进行记录,该系统可以实现按天分类,超行分类功能,可以根据实际情况分别使用同步和异步写入两种方式。其中异步写入方式,将生产者-消费者模型封装为阻塞队列,创建一个写线程,工作线程将要写的内容push进队列,写线程从队列中取出内容,写入日志文件。日志系统大致可以分成两部分,其一是单例模式与阻塞队列的定义,其二是日志类的定义与使用。当队列为空时,从队列中获取元素的线程将会被挂起;当队列是满时,往队列里添加元素的线程将会挂起。

z2812470857的博客 1065

解决此平台不支持虚拟化的 Intel VT-x/EPT故障问题

当我们在VMware Workstation虚拟机上【启用】虚拟系统(如:Windows10)所在的虚【拟机设置】【处理器】【虚拟化引擎】下面的【虚拟化 Intel VT-x/EPT 或AMD-V/RVI(V)】内容后,在启动虚拟系统时,虚拟系统无法启动,且弹出【此平台不支持虚拟化的 Intel VT-x/EPT。不使用虚拟化的 Intel VT-x/EPT,是否继续】窗口

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

分级 API Key 的使用案例

分级 API Key 的使用案例 1. 背景介绍 1.1 问题由来 随着网络服务的普及,API(Application Programming Interface,应用程序编程接口)成为了连接不同系统和应用的关键桥梁。API Key(API密钥)

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 1021

5.1阻塞和非阻塞/同步和异步

典型的一次IO的两个阶段是什么?数据就绪 和 数据读写数据就绪:根据系统IO操作的就绪状态阻塞非阻塞数据读写:根据应用程序和内核的交互方式同步异步在处理 IO 的时候,阻塞和非阻塞都是同步 IO,只有使用了特殊的 API 才是异步 IO。一个典型的网络IO接口调用,分为两个阶段,分别是“数据就绪” 和 “数据读写”,数据就绪阶段分为 阻塞和非阻塞,表现得结果就是,阻塞当前线程或是直接返回。同步表示A向B请求调用一个网络IO接口时(或者调用某个业务逻辑API接口时),数据的读写都是 由请求方A自己来完成的(不

l_ethan的博客 136

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

同步与异步、阻塞与非阻塞详解

同步与异步,阻塞与非阻塞,这些看似很简单的概念实则包罗万象,大至操作系统,小至个人编程,都会有涉及到的领域

THEWhites的博客 2737

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

同步 异步 阻塞 非阻塞 区别

https://www.cnblogs.com/Anker/p/5965654.html   1、前言   前一段时间出去面试,被问到同步、异步与阻塞、非阻塞的区别。我一时半会没有想出来,作为一个工作三年的人来说,实在很惭愧。我当时理解同步、异步属于两个进程中间的协作关系,例如使用浏览器访问一个网站,需要多次请求服务端,才能加载完整个页面的内容。同步的操作如下:浏览器首先发送第一个请求,等待...

qq_35503998的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

深入理解阻塞/非阻塞IO、同步/异步IO的区别

文章目录【1】同步、异步、阻塞和非阻塞的概念【2】阻塞IO模型【3】非阻塞IO模型【4】IO复用模型【5】信号驱动IO【6】异步IO模型【7】各种IO模型的比较 【1】同步、异步、阻塞和非阻塞的概念 同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。 例如:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执行下去。 异步:异步的概念和同步相...

Lebron 4458

那些年让人迷惑的同步、异步、阻塞、非阻塞

在IT圈混饭吃,不管你用什么编程语言、从事前端还是后端,阻塞、非阻塞、异步、同步这些概念,都需要清晰地掌握,否则,怎么与面试官谈笑风生(chui niu pi)?但是,掌握这些概念又不是非常容易,尤其对非科班出身的,更加困难。本文试图给出一个清晰简明但不失深刻的介绍,希望对大家有所帮助。 1、从I/O说起 这些概念之所以容易令人迷惑,在于很多人对I/O就没有清晰准确的理解,后面的理解自然不可能...

方志朋的专栏 1万+

一次相亲经历,我彻底搞懂了什么叫阻塞非阻塞,同步异步

看到标题,可能你会想,相亲跟阻塞/非阻塞,同步/异步有啥关系,这个逗b不知道在想什么东西。不要急,且听我慢慢道来 年纪大了,一回家七大姑八大姨就各种催婚,都说要给我介绍女朋友。这不,刚刚门口,我的大姨,二叔,三大爷就已经在门口蹲着我了 大姨:“大外甥啊,给你介绍个女朋友要不咯?” 我(心理活动):要个鬼啊,我还年轻,女朋友还在幼儿园呢!再说了,程序员需要女朋友嘛?啊???代码就是我媳妇儿 ...

做一个认真的程序员 2915

正确理解同步/异步和阻塞/非阻塞的区别:

之前一直把异步和非阻塞混为一谈,在 了解BIO和NIO的区别时才发现了两者的差异,看了网上很多文章觉得说的总是差点意思,下面是个人理解: 1.同步 非同步 阻塞 非阻塞 概念 https://www.zhihu.com/question/19732473 2.同步/非同步和阻塞/非阻塞的区别: https://blog.youkuaiyun.com/qq_35503998/article/details/82835517 这篇将的比较中肯 3.BIO和NIO的区别: https://zhuanlan.zh

zyz的博客 3088

同步 / 异步 + 阻塞 / 非阻塞

摘要:本文系统解析了同步/异步、阻塞/非阻塞两组正交维度的四种组合模式。同步关注结果主动获取,异步依赖回调通知;阻塞会挂起线程,非阻塞允许线程继续执行。重点分析了同步阻塞(如Java BIO)、同步非阻塞(如NIO轮询)、异步阻塞(不合理模式)和异步非阻塞(如Netty)的特点、流程及应用场景。强调异步非阻塞是高并发终极方案,并提供了面试应答策略:先厘清维度区分,结合技术栈(NIO/AIO)和业务场景(秒杀系统),预判回调嵌套等深度问题。最后对比四种模式的线程状态、性能差异和典型技术实现。

个人专长:数据结构和算法、大数据、数据库、主流框架 1037

深入理解非阻塞同步IO和非阻塞异步IO

这篇文章分析了Linux下的5种IO模型 http://blog.youkuaiyun.com/hguisu/article/details/7453390 很多人对阻塞 / 非阻塞, 同步 / 异步 的概念理解的不深入,搞不清楚非阻塞和异步IO的区别,笼统的认为非阻塞IO就是异步IO。其实区别很大,编程模型完全不同。 阻塞 / 非阻塞描述的是函数,指访问某个函数时是否会阻塞线程(bl

ITer_ZC的专栏 1万+

网络常识二:同步、异步、阻塞、非阻塞

本文试图厘清这几个术语的具体含义:同步、异步、阻塞、非阻塞。

antsmall的专栏 1381
上一篇: 4-33--4-35
下一篇: 14章 类 part 1
三Ⅶ
博客等级 码龄8年 26粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值