同步和异步的区别及优缺点 通俗理解

news/2024/10/18 0:26:45/

一、同步和异步的区别

程序里面的同步和异步和我们现实生活理解不太一样,一般我们对同步的理解是同时做很多事情,但程序中的同步是按照任务的顺序执行任务,前一个任务没有执行结束,下一个任务不会执行,要等待上一个任务执行结束。

  1. 通俗举例:

  2. 我大学有个室友袁大炮,我们都叫他炮哥。大学开始时炮哥很单纯,和女生告白,在同一时间内只和一个女孩表白,

  3. 等人家姑娘拒绝他后才向另外一个女生表白,这就是我们所谓的同步,等上一个表白结束了才会和开始追求另外一个女生。

 异步:是同一时间内可以做多件事,(这往往伴随着多线程,关于线程接下来我也会写一篇《javascript的单线程与异步》进行简单分析介绍)

  1. 通俗举例:

  2. 后来过来一段时间炮哥变风流了,他开始同时和多个女生表白,给一个姑娘表白不等姑娘回复就给另外一个姑娘表白,这就是我们所谓的异步。

当然,同步异步的含义不能这么表述,我们这样解释只是为了容易理解。

二、同步和异步的优缺点

我们炮哥前后不同的行为来分析一下同步与异步的优缺点:
1、当炮哥同一时间内只表白一个女生的时候,如果女生拒绝了他,中间可能要等等待姑娘很长的回复时间,脱单的效率会很低;
2、同时表白多个姑娘的话,他可以利用姑娘回复的这段时间表白其他姑娘, 这样炮哥脱单效率就会变得很高,但这样也会带来其他问题,
   比如要耗费大量的精力财力,并且有可能多个女生关系处理不好,不便控制,容易发生意外情况。

所以同步和异步主要的优缺点我们就总结出来了:

1、同步的执行效率会比较低,耗费时间,但有利于我们对流程进行控制,避免很多不可掌控的意外情况;
2、异步的执行效率高,节省时间,但是会占用更多的资源,也不利于我们对进程进行控制


http://www.ppmy.cn/news/51130.html

相关文章

一个注解解决分布式锁和接口幂等性,springboot 实战 。强到离大谱

如今基本上都是分布式、多节点时代,我们业务代码中避免不了需要使用分布式锁。admin4j-lock 为我们提供分布式锁解决方案。支持redisson和zookeeper分布式锁 功能 支持redisson分布式锁和zookeeper 分布式锁 支持可重入锁 支持读写锁 支持红锁 redLock 支持一个…

Python 程序通过可执行文件部署

以下是两种常用的打包 Python 程序成 exe 的方式: PyInstaller: PyInstaller 是一个用于将 Python 程序打包成独立的可执行文件的工具。它可以自动解决 Python 程序的依赖性,并将所有必要的文件(包括 Python 解释器)…

2023年五月份图形化四级打卡试题

活动时间 从2023年5月1日至5月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…

如何写出高质量代码——站在巨人的肩膀上

如何写出高质量代码——站在巨人的肩膀上 高质量代码的三要素:可读性,可维护性,可变更性可读性强可维护性:适应软件在部署和使用中的各种情况1.3 可变更性:因需求变化而对代码进行修改 牛顿曾经说过:如果说…

机器思维(个人总结)

机器思维,也称为人工智能或AI,是一种由计算机程序或机器实现的智能行为和决策的领域。这种智能可以表现为对自然语言的理解和生成、对图像和声音的理解、对环境的感知和理解、对复杂问题的推理和决策等,这些都是人类智能的核心特征。人工智能…

【JUC】Java并发机制的底层实现原理

【JUC】Java并发机制的底层实现原理 参考资料: CPU 缓存一致性 《Java并发编程的艺术》 【JUC并发编程】CAS到底加不加锁? 如何写出让 CPU 跑得更快的代码? 彻底理解Java并发编程之Synchronized关键字实现原理剖析 【JUC并发编程】Synchroni…

【观察】华为:新一代楼宇网络,使能绿建智慧化

“碳达峰”、“碳中和”目标是我国生态文明建设和高质量可持续发展的重要战略安排,将推动全社会加速向绿色低碳转型。作为全球既有建筑和每年新建建筑量最大的国家,大力发展绿色建筑对中国全方位迈向低碳社会、实现高质量发展具有重要意义。 《“十四五”…

【Linux命令行与Shell脚本编程】第五章 理解 Shell 父子关系 后台进程 协程

Linux命令行与Shell脚本编程 第五章 理解 Shell 文章目录 Linux命令行与Shell脚本编程五,理解 Shell5.1,shell的类型5.2,shell的父子关系5.2.1,进程列表 ()5.2.2 子shell的用法1,后台模式2,后台进程列表3,协程 5.3,外部命令和内建命令5.3.1,外部命令5.3.2,内建命令1,history 命…