同步和异步区别
来源:互联网 发布:淘宝怎么看真假 编辑:程序博客网 时间:2024/05/17 02:12
面试经常问道的题目,上网查了下,很多人长篇大论总是说不到点子上,当然并不是说他们说的不对,可能是自己理解的比较片面。
但还是得先概括下:
他们最大的区别:同步需要等待,而异步无需等待。
例子:
普通B/S模式(同步)AJAX技术(异步)
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干别的事。
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕。
说的再通俗易懂点
同步是按顺序执行,执行完一个再执行下一个,需要等待、协调运行。
异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。
线程就是异步实现的一个方式。
异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。
异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。
异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。
实现异步可以采用多线程技术或则交给另外的进程来处理。
详解:
同步和异步区别:(好处和坏处)
同步可以避免出现死锁,读脏数据的发生。
一般共享某一资源的时候用,如果每个人都有修改权限,同时修改一个文件,有可能使一个人读取另一个人已经删除的内容,就会出错,同步就会按顺序来修改。
但是,同步需要等待资源访问结束,浪费时间,效率低。
异步则可以提高效率,
现在cpu都是双核,四核,异步处理的话可以同时做多项工作,当然必须保证是可以并发处理的。
但是安全性较低。
拓展:
并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥
互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。
并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。在多处理器上的程序才可实现并行处理。从而可知,并行是针对多处理器而言的。并行是同时发生的多个并发事件,具有并发的含义,但并发不一定并行,也亦是说并发事件之间不一定要同一时刻发生。
多线程:多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。
- 同步和异步区别
- 同步和异步,区别
- 同步和异步区别
- 同步和异步区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- 同步和异步的区别
- Atlassian 产品数据库选择/修改
- 安卓数据库
- 看 java 报错
- codeforces 14D Two Paths dfs
- QString转换为 QByteArray
- 同步和异步区别
- 一套不错的IOS笔试题选择题
- RPC框架几行代码就够了
- Hibernate核心机制
- 【Maven】【gradle】java.io.IOException: No locks available常见解决方案
- C++ STL学习
- 算法竞赛入门经典第六章
- HDU_2227_FindTheNondecreasingSubsequences
- 欢迎使用CSDN-markdown编辑器