同步/异步&阻塞/非阻塞总结

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法 【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法:①检查PyCharm导入的环境是否错误②添加Torch包 阅读详情
   这篇文章最初使用cterm发表在学校BBS上的,所以排版有点乱,大家将就着看吧
发信人: bripengandre (老老实实做人|踏踏实实做事), 信区: Programming
标  题: 同步/异步 &阻塞/非阻塞总结版(转载)
发信站: 武汉白云黄鹤站 (2008年07月20日11:29:07 星期天), 站内信件

【 以下文字转载自 SOCKET 讨论区 】
【 原文由 bripengandre 所发表 】

    版上已有yacht和popy兄等人的大作,但因为都是讨论型作品,所以总结力度不是特别
强。下面我就结合他们的观点,加上自己的理解,对这个问题来个总结。文中不对之处,
还请各位及时指出^_^

1、首先同步和异步是时序概念,阻塞和非阻塞是一种响应模式(特别是当资源受限时,
响应很不一样)。

2、同步可以看作是通信双方都清楚的事件流,是通信协议最重要的部分。没有同步,就
是没有共同语言,同步是通信的前提。

3、为什么要有异步?异步是为了提供并发性而出现的一个概念(如线程就是一种异步机制
,中断也是)。

    2中已提到同步是通信的前提,所以所谓的异步不是就1对1的通信而说的,而是就
1对多或多对多这样的通信整体来说的。所以就具体的1对1通信来说,异步需要提供回调、
事件或信号等机制来同步。举个例子:A进程与B进程存在了耗时的通信,于是A开一个线程
A1与B周旋,不等A1与B通信完成而用其它线程继续与C,D等进程通信,当A1与B通信完毕后
,采用同步机制(信号,事件等)来通知A,B进程.这样从整体上看,A进程与B进程间的通信是
异步的,而更为细化点A1与B还是同步的.

4、阻塞与非阻塞的出现也是为了提供并发性而出现的一种实现机制.在单任务机器上阻塞
是必然的,而在多任务机器上,阻塞给其它非阻塞提供了更多的调度机会.

阻塞与非阻塞最大的区别是:当操作环境不具备时,阻塞操作不返回,阻塞的执行者就被挂
起,直到操作环境具备时,阻塞操作才返回,阻塞的执行者被唤醒;而非阻塞操作则不然,无
论操作环境是否具备,都是立即返回.

5、正因为同步/异步与阻塞/非阻塞是两个不同的概念,所以你中有我,我中有你.同步是
通信前提,阻塞/非阻塞以及异步归根到1对1通信时都是同步的;异步是并发思想/概念,没
有异步,阻塞/非阻塞就没了指导思想,阻塞何时变成非阻塞(这个通知机制就是异步的
概念);阻塞/非阻塞是实现多对多异步通信的一种手段,其实,我们用其它手段实现异步通信
时,最终还是通过阻塞某些操作并不阻塞另外一些操作来实现的~~


6、总结。同步是逻辑层次上的点对点的一致协商是通信前提,异步是并发(包含突发)的代
名词(写到最后突然发现的,不知是不是思维走入死胡同了^_^),阻塞/非阻塞是实现并发
的手段。
补充说明:电气电子通信中经常提到异步通信,这里的异步通信是指通信双发的时钟步调
不怎么严格一致,最终通过起始位和停止位等来实现同步。所以同步是逻辑层次上的点对
点一致协商^_^

写到这里,我头都晕了~~~就扔笔了^_^
--
※ 修改:·bripengandre 于 07月20日11:28:52 修改本文·[FROM: bbs.whnet.edu.cn]
※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·
--
※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·
--
※ 转载:·武汉白云黄鹤站 bbs.whnet.edu.cn·[FROM: bbs.whnet.edu.cn]
 
激光工程师必备:5个ABCDRez在谐振腔设计中的实战技巧(含热效应处理) 本文为激光工程师分享了5个利用ABCDRez矩阵光学工具进行谐振腔设计的实战技巧,重点涵盖热效应处理、模式匹配优化与稳定性分析。通过建立参数化模型、动态热透镜补偿、模式匹配仿真及灵敏度分析,帮助工程师实现从“黑箱”到“白盒”的腔体设计与调试,提升激光器设计的鲁棒性与效率。 阅读详情

相关推荐

未隔离电源设备使用usb转串口调试导致串口模块爆炸烧坏事故记录

这个事就发生在前两天,我们公司的wifi模块被客户用到了咖啡机上,客户寄了一台整机给我们协助调试,还送了几包咖啡豆,本想着还能打个咖啡喝一喝的,但就在咖啡机刚寄过来第一天,就出事了。而这个事故的发生,竟然仅仅是因为同事接了个串口模块到电脑调试打印导致的。谁也想不到,这个3.3V的供电的wifi模块居然还有这么大的威力。直接将usb转TTL串口模块的转换芯片给爆开了,咖啡机也给弄坏了,据同事描述当时情况就只见到一片火光和一声巨响,状况比较惨烈,所幸的是笔记本电脑没有烧坏,但是直接给崩蓝屏了。 ...

fangye945a的博客 6192

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

同步与异步 同步:A任务依赖B任务,只有B任务完成,A任务才算完成,两个任务状态保持一致,有点同生共死的味道,是一种可靠的任务序列。 异步:A任务依赖B任务,但只是通知B任务,并不等B任务完成,只要A自己完成就算完成任务了,至于B是否完成就不一定了,故是一种不可靠的任务序列。 即同步保证程序可靠性,异步提升程序性能。 同步:流程处理结果简单;易于捕获异常 异步:没有时序严格限制,不影响主...

bfzsncdx的博客 230

Ubuntu无桥接模式或连不上网(详细解决方法

目录 问题1:Ubuntu没有未桥接的主机网络适配器 解决方法 1.打开VMware安装目录下的文件 ​编辑2.右键安装以上三个文件 3.打开网络状态属性,找到VMware bridgeProtocol,点击安装 问题2.Ubuntu桥接模式连不上网 1.win+r打开cmd终端,输入ipconfig /all 2.记录以下数据 3.打开VMware网络设置 问题1:Ubuntu没有未桥接的主机网络适配器 VMWare安装之后,虚拟网络一直使用默认配置 VMnet0为...

m0_65592409的博客 6062

nodejs的同步,异步,阻塞,非阻塞

    说nodejs的回调,得先说关于nodejs的相关的几个重要概念:同步,异步,阻塞,非阻塞。    同步和异步:        同步和异步是一种“现象”,这种现象的表现在自己“编写的主程序”无停顿执行或有停顿执行,程序耗时是(m+n)还是max(m+n)。    阻塞和非阻塞:        阻塞和非阻塞是一种“事实”,体现为一段主调用序是挂起还是一直等待另外的系统调用完成。    总结 ...

linxiaoziruo的专栏 1261

90nm CMOS工艺下6μW超低功耗LDO设计实战:从原理图到版图全解析

本文详细解析了在90nm CMOS工艺下设计一款静态功耗仅为6μW的超低功耗LDO(低压差线性稳压器)的全过程。文章深入探讨了如何通过改进型翻转电压跟随器(FVF)架构实现无输出电容设计,在满足极低功耗和芯片面积高效(chip-area-efficient)要求的同时,确保环路稳定性与快速瞬态响应,为物联网、可穿戴设备等应用提供关键电源管理解决方案。

weixin_29196613的博客 274

RIGOL DS1102E示波器新手必看:从开机到捕获第一个波形的5分钟指南

本文为RIGOL DS1102E示波器新手提供了一份快速上手指南。内容涵盖从开机、探头校准到捕获第一个波形的完整流程,重点解析了触发设置、自动测量等核心操作,并指出了探头衰减比设置等常见误区,帮助用户快速掌握这款经典数字示波器的基本使用方法。

dream的博客 740

c语言socket之非阻塞模型开发服务器与客户端。

非阻塞方式,你懂的 #include <sys/socket.h> #include <sys/types.h> #include <arpa/inet.h> #include <unistd.h> #include <stdio.h> #include <errno.h> int main(int argc, char* argv[]){ int fd = socket(AF_INET, SOCK_STREAM, 0

jenie的专栏 1226

9篇2章2节:GBD 数据库的数据申请详解

无论您是初入公共卫生领域的学生、资深的科研工作者,还是政策决策者,GBD数据库都将成为您数据分析与决策支持中不可或缺的重要工具。

MD Code 2599

C语言Socket入门非阻塞socket(connect timieout问题)

如果客户端想连接一个服务器端,但是不能肯定服务器端是否存在,如果存在了是否能连上,怎么判断呢? connect函数的默认行为是阻塞的,会一直等待在那里。为了判断各种情况,以及遇到错误时结束连接,我们需要使用非阻塞的socket。一个例子程序:#include#include#include#include#include#include#include#includeint main(void){

hanchaoman的专栏 7916

【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)

OpenSSL 是一个开源的软件库,它提供了一系列加密工具和协议,主要用于实现安全通信,如在网络上的数据传输。它支持多种加密算法,包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密钥交换以及证书管理等。

嵌入式技术开发 4161

RT-DETR改进策略【Conv和Transformer】| ICCV-2023 iRMB 倒置残差移动块 轻量化的注意力模块

本文记录的是利用模块优化的目标检测网络模型。的作用在于克服了常见模块无法同时吸收CNN 效率建模局部特征和利用Transformer 动态建模能力学习长距离交互的问题。相比一些复杂结构或多个混合模块的方法,能更好地权衡模型成本和精度。本文将其用于的模型改进和二次创新,更好地突出重要特征,提升模型性能。Rethinking Mobile Block for Efficient Attention-based Models从微观角度看,由和组成。及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块

Limiiiing的博客 816

同步(Synchronous)、异步(Asynchronous)、并行、并发

同步、异步、并行、并发

qq_42763903的博客 1879

把核心变干净的代价与回报:为什么推动 Clean Core,几乎绕不开 SAP Integration Suite 与 API Management

Clean Core的核心价值在于构建可持续升级的ERP系统架构,其关键不在于减少代码或限制扩展,而是通过解耦和治理实现系统边界的清晰划分。这一理念将推动企业从传统的"私搭乱建"式集成向平台化工程转型,而SAP Integration Suite和API Management正是实现这一转型的核心组件。 Integration Suite作为集成中枢,通过统一平台、可复用内容库和事件驱动架构,将碎片化连接转变为标准化能力;API Management则负责建立接口治理体系,通过统一入口、

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 243

【操作系统】同步 / 异步 & 阻塞 / 非阻塞 到底是啥?

摘要:本文清晰区分了同步/异步与阻塞/非阻塞的概念。同步指必须等待结果返回才能继续,异步则是立即返回通过回调获取结果;阻塞会挂起线程等待,非阻塞可处理其他任务。通过生活类比和四种组合方式的举例(如同步阻塞像占线等待,异步非阻塞像点外卖自动通知),帮助理解这些高并发编程的基础概念。文末还提供面试速答模板,指出这些组合方式决定了程序效率和资源使用,是现代系统设计的重要考量。

huahualinnn的博客 541

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

同步/异步&阻塞/非阻塞

平时开发中经常会听大家说到什么同步阻塞、异步非阻塞等等名词,这里我谈下自己对这两个名词的理解,仅仅是个人观点,并不一定正确。 1.阻塞/非阻塞 我认为判定阻塞还是非阻塞,取决于线程所做的操作是否需要将线程挂起等待。 举个例子,我们都知道CAS是非阻塞的,而synchronized是阻塞的。为什么呢,因为CAS能快速返回一个获取锁成功或失败结果,线程可以在获取锁失败时再去做其他事情,而synchro...

斜阳雨陌 828

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

I/O模型:阻塞、非阻塞 & 同步、异步

转自:http://jzhihui.iteye.com/ 这篇文章主要总结下这几个概念,前几天看到微博里在讨论,当时也有点搞不清楚,昨天在看到Reactor和Proactor模式的时候,又提到相关概念,索性搞搞清楚,写个总结。   《Unix网络编程卷1:套接字联网API》(下面称为卷1)第6章对Unix I/O模型有5种划分:阻塞式I/O模型,非阻塞式I/O模型,I/O复用

那时那刻 1013

网络编程 - 同步/异步 & 阻塞/非阻塞 - 学习/实践

主要用于弄清楚网络编程中的同步/异步 & 阻塞/非阻塞。

"代码"的日常搬运 795

同步/异步 & 阻塞/非阻塞

一、同步/异步 同步/异步, 它们是消息的通知机制。 同步:在发出一个功能调用时,在没有得到结果之前,该调用就不返回。 异步:当一个异步过程调用发出后,调用者不会立刻得到结果。实际处理这个调用的部件是在调用发出后,通过状态、通知来通知调 用者,或通过回调函数处理这个调用。 所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换

WangQYoho的博客 607

阻塞/非阻塞 & 同步/异步

老张爱喝茶,废话不说,煮开水。 出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。 1 老张把水壶放到火上,立等水开。(同步阻塞) 老张觉得自己有点傻 2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞) 老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。 3 老张把响水壶放到火上,立等水

dfvxcvxcvxc的专栏 318

I/O 阻塞&非阻塞&同步&异步

阻塞(blocking)&非阻塞(non-blocking)I/O阻塞/非阻塞的关注点在与调用者是否等待被调用者返回。在实际应用中,大多数I/O请求是阻塞的,这意味着在I/O完成之前,控制权不会回到调用者手中。这种延迟在某些情况下会非常长,比如说执行read()或者write()操作。而非阻塞I/O**会在发出IO请求后控制权立即转移到调用者手中**,即使数据包没有准备好,也会返回一个错误标识,使得控制权立即转移到调

hit_ynsun的博客 544

我对同步/异步&阻塞/非阻塞概念的理解

同步与异步:指的是两种消息处理机制。 同步:发出“调用”请求后,同步(同时)接受“调用”返回值和“调用”结果。 异步:发出“调用”请求后,异步(不同时)接受“调用”返回值和“调用”结果。 做个通俗一点的比方:我问ww:“帮我算一下1+1等于几?”,ww算好后,说:“好的”,“等于2”——这是同步的方式。 另外一种情况是:我问完,ww说:“好的”,然后开始算,算好

jshnaoko的博客 206

深入理解同步阻塞、同步非阻塞、异步阻塞、异步非阻塞

这篇文章深入探讨了编程语言层面的同步、异步、阻塞和非阻塞概念。作者首先强调这些概念与操作系统层面的区别,并指出它们都是基于主线程视角来定义的。文章通过清晰的图表和定义,将四种组合模式(同步阻塞、同步非阻塞、异步阻塞、异步非阻塞)进行了详细区分,并用职场求助的生动案例帮助理解。作者特别指出判断函数类型时需明确交互代码范围,并分享了实用的经验结论:普通函数默认同步阻塞,回调函数通常异步,UI回调多为异步阻塞,多线程函数默认非阻塞等。文章最后强调,在UI领域需避免在回调中编写耗时代码,以防造成应用无响应问题。

暗诺星刻的博客 3万+

同步异步/阻塞非阻塞

网络中获取数据的读操作步骤: 等待数据准备。 数据从内核空间拷贝到用户空间。 同步与异步: 同步与异步是针对应用程序与内核的交互而言。也就是上图的read操作,从缓存中读取数据,如果缓存中数据还没有准备好,如果是同步操作,它会一直等待,直到操作完成。如果是异步操作,那么它会去做别的事情,等待数据准备好,内核通知它,它再去读取数据。 同步过程中进程触发IO操作并等待或者轮询的去查看IO操作是否完...

EmbeddedCoder 的优快云博客 6982

大白话搞懂什么是同步/异步/阻塞/非阻塞

前言 在最近的一些面试中,跟应聘者聊了比较多关于“同步/异步,阻塞/非阻塞”相关的话题,发现大家对于这些概念的理解都比较模糊,甚至有的同学会反问“他们不就是同一个东西吗?”。所以借着这么一个机会,我想用一些尽量简单的例子,尽量简洁的语言来聊聊自己对于这些概念的看法。 正文 这篇文章想通过一个老王“候车”的案例来解释这些概念。 同步阻塞 放假了,老王回到了乡下,由于乡下的基础设施比较差,当他在车站候...

深夜里的程序猿 3万+
上一篇: http://hi.baidu.com/bripengandre/--换博客了--
下一篇: Tcpreplay3.x的安装、使用和源码分析
彭令鹏
博客等级 码龄20年 225粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值