同步和异步区别

面试经常问道的题目,上网查了下,很多人长篇大论总是说不到点子上,当然并不是说他们说的不对,可能是自己理解的比较片面。

但还是得先概括下:

他们最大的区别:同步需要等待,而异步无需等待。

例子:

普通B/S模式(同步)AJAX技术(异步)  

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干别的事。

异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕。

说的再通俗易懂点

同步是按顺序执行,执行完一个再执行下一个,需要等待、协调运行。

异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。

线程就是异步实现的一个方式。

异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。
   

异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。

异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。

实现异步可以采用多线程技术或则交给另外的进程来处理。


详解:

同步和异步区别:(好处和坏处)


同步可以避免出现死锁,读脏数据的发生。

一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。

但是,同步需要等待资源访问结束,浪费时间,效率低。 


异步则可以提高效率,

现在cpu都是双核,四核,异步处理的话可以同时做多项工作,当然必须保证是可以并发处理的。

但是安全性较低。


拓展:

并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥

互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。

并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。在多处理器上的程序才可实现并行处理。从而可知,并行是针对多处理器而言的。并行是同时发生的多个并发事件,具有并发的含义,但并发不一定并行,也亦是说并发事件之间不一定要同一时刻发生。  

多线程:多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。  

【Python基础】FastAPI 从入门到项目实战操作详解 【Python基础】FastAPI从入门到使用实战操作详解 阅读详情

相关推荐

Java8动态生成SFunction:基于字段名的Lambda表达式实践

本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。

sss66的博客 953

同步和异步的区别、例子

一、同步、异步的区别 同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,在相应用户,用户体验不好。 异步,不用等所有操作等做完,就相应用户请求。即先相应用户请求,然后慢慢去写数据库,用户体验较好。 同步: 同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。...

lmm0513的博客 6715

Lumerical FDTD新手教程:5步搞定MMI波导光谱模拟(附避坑指南)

本文提供Lumerical FDTD新手教程,详细讲解5步完成MMI波导光谱模拟的实用方法,包括环境准备、结构建模、光源配置、仿真优化和结果分析。特别针对多模干涉耦合器(MMI)的模拟难点,提供避坑指南和优化策略,帮助光学工程师快速掌握FDTD仿真技术。

kite3的博客 359

同步与异步的区别

同步与异步的区别 最近在学习ajax,而ajax(Asynchronous JavaScript and XML)是一种异步的JavaScript和XML技术。鉴于此,就先来了解下同步与异步的思想和区别。 一:同步与异步 同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。 异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,

鑫仔的博客 5万+

快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)

一、上模块 二、功能分析 l 芯片:CH340N l 输入接口:USB、TYPE-C l 输出接口:TTL(5V\3.3V\GND\TX\RX) l 指示灯:电源、TX、RX 三、CH340x芯片 l CH340 是一个 USB 总线的转接芯片,实现 USB 转串口 l 全速 USB 设备接口,兼容 USB V2.0 l 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps l 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DS...

东小东博客 5万+

粒子群算法实战:用Matlab解决旅行商问题(TSP)的完整代码解析

本文提供了使用粒子群算法解决旅行商问题的完整Matlab实战指南。通过将连续空间的粒子群算法进行离散化改造,采用基于交换序的策略来更新粒子位置与速度,并给出了从问题定义、数据结构设计、核心函数实现到主迭代循环的详细代码解析。文章还探讨了参数调优、性能优化及处理复杂TSP变体的进阶思路,为物流规划、路径优化等领域的工程应用提供了可直接复用的解决方案。

m2n3o4p5的博客 350

同步异步区别

一、同步、异步的区别 同步,是所有的操作都做完,才返回给用户结果。即写完数据库之后,在相应用户,用户体验不好。 异步,不用等所有操作等做完,就相应用户请求。即先相应用户请求,然后慢慢去写数据库,用户体验较好。 同步: 同步的思想是:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。 异步: 将用户请求放入消息队列,并反馈给用户,系统

qq_51728252的博客 8132

工业质检新利器:手把手教你用AD-DINOv3实现零样本缺陷检测(附MVTec AD实战)

本文详细介绍了AD-DINOv3框架在工业质检中的应用,通过零样本异常检测技术解决传统方法的标注成本高和泛化能力弱问题。文章包含技术原理解析、MVTec AD数据集实战部署、模型训练流程及工业部署优化技巧,帮助读者快速掌握这一创新技术。

seed的博客 764

同步与异步区别以及与线程关系

尽管同步与异步常常与多线程和单线程相联系,但它们并不直接依赖于线程的使用。同步与异步关注的是任务之间的等待机制,而线程模型决定任务如何在不同线程间分配执行。

beethobe的博客 3642

PLL锁相环性能上不去?可能是电荷泵的电流失配在捣鬼(附Jae-Shin Lee经典方案解析)

本文深入分析了PLL锁相环性能瓶颈的根源——电荷泵电流失配问题,详细解析了Current Mismatch和Current Deviation的区别及其对系统的影响。重点介绍了Jae-Shin Lee的多级电流镜技术,该方案通过运放构建虚拟短路和四级电流镜结构,显著降低了电流失配,使参考杂散改善15dB以上。文章还提供了从仿真到流片的完整优化流程,帮助工程师系统解决电荷泵性能问题。

weixin_30684743的博客 370

深入解析NPN与PNP传感器驱动电路的设计逻辑与实战应用

本文深入解析NPN与PNP传感器驱动电路的设计逻辑与实战应用,详细对比两者的电流路径差异和电平变化特性。通过实际案例分享电路设计要点,包括上拉电阻选择、保护二极管配置等,并提供工业应用中的选型策略和常见故障排查指南,帮助工程师优化传感器系统集成。

weixin_42561476的博客 469

同步和异步的区别

同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令。   异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。  同步,就是实时处理(如打电话),比如服务器一接收客户端请求,马上响应,这样...

yexiang优快云的专栏 6万+

git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案

本文主要介绍了git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案,希望能对使用git的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 23万+

同步和异步有什么区别

无论使用哪种方式,异步操作的实现都需要注意处理成功和失败的情况,确保及时处理异步操作的结果或错误。async/await: async/await 是 ES2017 引入的用于更加优雅地处理异步操作的语法糖,基于 Promise 对象实现,使得异步代码看起来更像同步代码,易于阅读和维护。async/await: async/await 是 ES2017 引入的用于更加优雅地处理异步操作的语法糖,基于 Promise 对象实现,使得异步代码看起来更像同步代码,易于阅读和维护。关键字,可以定义一个异步函数。

2301_79265530的博客 2546

lwip-2.0.3

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

同步和异步的区别?

特性同步(Synchronous)异步(Asynchronous)执行方式调用方发起任务后,必须等待任务完成才能继续执行后续操作调用方发起任务后,无需等待任务完成,直接继续执行后续操作控制权任务执行期间,控制权由任务本身持有(调用方被"挂起")任务执行期间,控制权始终在调用方手中结果获取任务完成后直接返回结果任务完成后通过回调、Future等方式通知调用方典型场景方法调用、阻塞I/O(BIO)异步I/O(AIO)、事件驱动编程、消息队列处理执行流程。

weixin_43521001的博客 722

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Ajax同步和异步的区别

之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题。 最近的项目用了到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。 而异步则这个AJAX代码运行中的时候其他代码一样可以运行。 jquery的async:false,这个属性 默认是t...

PHPArchitect的博客 2460

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

同步和异步的区别? 同步函数和异步函数的区别?

同步和异步是编程中处理任务执行顺序的两个基本概念,尤其是在多线程或多任务环境中。下面我将分别解释同步和异步的概念,然后讨论同步函数和异步函数的区别。

m0_47408435的博客 1048

ajax的同步和异步有怎样的区别?ajax同步与异步的区别介绍

对于ajax我们应该知道ajax是主要用来在前端页面中向服务器后端请求数据,ajax中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式,那么,ajax的同步和异步请求两种方式有什么区别呢?本篇文章就来给大家详细分析一下ajax同步与异步执行的区别。 ajax异步请求: 异步请求就当发出请求的同时,浏览器可以继续做任何事,Ajax发...

yangniceyangyang的博客 1121

Android异步和同步的区别

Android异步和同步的区别 答案一: 1、同步执行的话,就是程序会呆板地从头执行到尾,耗时间的东西不执行完,程序不会继续往下走,等待时间长的话,有时候就会造成失去响应了。 2、异步的好处,就是把一些东西,特别是耗时间的东西扔到后台去运行了(doInBackground),程序可以继续做自己的事情,防止程序卡在那里失去响应。 答案二: 1、同步是指两个线程的运行是相关的,其中一个线

Mr_liu的博客 755

php异步和同步的区别,用Ajax实现同步和异步有什么区别

这次给大家带来用Ajax实现同步和异步有什么区别,用Ajax实现同步和异步的注意事项有哪些,下面就是实战案例,一起来看一下。通过ajax向后台发送和接收数据时,常常会出现同步异步问题。由于ajax是默认异步加载的,但有时候需要同步或者同步的效果,有以下两种解决方案。方案一:将某些方法放在回调函数中执行,即,等到从后台返回成功后再执行。例:$.getJSON("/data-access/sens-c...

weixin_34352565的博客 274

JS中同步和异步的区别

JS中同步和异步的区别 js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。如果一个任务耗时过长,那么后面的任务就必须一直等待下去,会拖延整个程序,常见浏览器无反应,可能就是一段代码死循环,造成程序卡住在这个位置,无法继续 为了解决这个问题,js的执行模式分为两种:同步和异步。 “同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;“异步模式"则完全不.

qq_45520476的博客 2458
上一篇: abstract class 和 interface 区别
下一篇: 热备份和冷备份区别
白衣染霜陈
博客等级 码龄22年 682粉丝 338原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值