news 2026/9/7 20:31:54

同步(Synchronous)和异步(Asynchronous)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
同步(Synchronous)和异步(Asynchronous)

同步异步是啥?打个比方:

定义: 同步与异步所关注的乃是消息通信机制 , 同步意味着调用某个事物时, 调用方必须等待该调用返回结果方可继续往后推进执行 , 而异步恰恰相反 , 调用方不会即刻得到结果 , 而是在调用发起之后调用者能够径直继续执行后续操作 , 被调用者依据状体来告知调用者 , 或者借助回调函数来处置此调用。

如同这样: 假设你前往商城选购物品, 你相中了一款手机, 此时你能够跟店家讲你要这一款手机, 随后他会前往仓库去取货, 在这个过程中你需要在店里等候着, 绝对不可以离开, 这种情况就被称作同步。当下你购买手机时追求时尚潮流, 直接去京东下单, 下单完成之后你就能够利用这段时间去做其他事情(比如追剧、玩王者、玩lol), 等货物送达后去收件就没问题了。这便叫做异步。

更具体点拿我们的方法调用来举例子:

我加两张图让你更好理解

同步执行

同步执行当调用方法执行完成后并返回结果,才能执行后续代码

异步执行

若采用异步调用, 那么可参考ajax, 调用方法之后, 不会等待sum方法执行完毕, 而是直接去执行后续的代码。sum方法执行完毕以后, 主要借助状态告知主线程, 不然就依靠回调来处理此次异步方法执行产生的结果。

同步异步于阻塞非阻塞不能混为一谈

看过上面所进行的讲解之后, 你或许有可能会讲, 这难道不摆明了就是阻塞机制吗? 并非如此, 不是这样, 同步以及异步断然不能够和平行的阻塞与非阻塞两者混淆在一起去看待了。

阻塞, 以及非阻塞, 所强调的是程序于等待调用结果(比如消息, 又或者返回值)之际的状态, 阻塞调用即为调用结果返回前, 当前线程会被挂起, 调用线程唯有在获取结果后才会返回, 非阻塞调用是指于不能马上得到结果之前, 该调用不会阻塞当前线程, 对于同步调用而言, 很多时候当前线程依旧处于激活状态, 只是从逻辑层面来讲当前函数未返回罢了, 也就是同步等待时什么都不做, 白白占用着资源。

消息通信机制有所属的同步和异步考量 ( / )。同步的情况是, 发出一个“调用”时, 在未获取结果前, 此“调用”不会返回。然而一旦调用返回 , 便得到返回值。也就是说 , 是“调用者”主动去等待这个“调用”的结果。异步与之相反 , “调用”发出后 , 该调用直接返回 , 故而不存在返回结果。也就是说 , 当一个异步过程调用发出后 , 调用者不会马上获得结果 , 标点符号, 结束于此标点处。而是呢, 在“调用”发出之后, “被调用者”会借助状态、通知去向调用者发出通知, 或者经由回调函数来对这个调用进行处理。

参考博客:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 12:19:40

国产化支持下的 WPS 适配 麒麟版 WPS 的差异

chayuan-wps 加载项在不同版 WPS 上的兼容差异。这一篇讲。 WPS 的几个版本 WPS Office 普通版(金山官方)。中国大陆主流个人版。 WPS Office 专业版。商业版。 WPS Office Linux 版。Linux 上原生。 WPS Office 麒麟版。麒麟 OS 上的版本(金…

作者头像 李华
网站建设 2026/9/5 12:51:18

基于Qt的Telnet客户端实现:协议解析与选项协商实战

简介:这是一份面向Qt开发者的Telnet客户端完整源码,版本v2.1,以LGPL/GPL3开源协议发布。项目基于Qt框架完整实现了Telnet协议的关键环节,包括TCP连接管理、命令交互的编码与解码、选项协商、异常处理与会话重连,并自带…

作者头像 李华
网站建设 2026/9/3 20:35:12

GEO 服务商避坑全指南:企业家挑选服务商必看的 5 条准则

GEO 行业尚处在发展早期,市场缺少统一认知,大量服务商水平参差不齐,不少外贸企业投入预算之后,达不到预期效果。作为行业标准牵头单位,结合全国服务两百多城市客户的实践,总结五条选型准则,帮助…

作者头像 李华
网站建设 2026/9/4 8:36:38

【计算机毕业设计单片机案例】基于 STM32 或 51 单片机的 PTC 恒温加热与饮水提醒控制系统设计 基于 STM32 或 51 单片机的水杯状态感知与参数可视化系统设计(025305)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/9/5 3:30:51

配置文件操作核心进阶:从加载机制到配置中心与变更管理

在日常开发和运维工作中,真正让人头疼的往往不是业务代码本身,而是那一堆“看似只需要改一行”的配置文件。maven 配置文件、nginx 配置文件、logback.xml 配置文件、fstab 配置文件……随便在技术社区搜一下,就能看到大量关于配置文件加载失…

作者头像 李华