java同步和异步的区别_java中同步与异步的区别是什么?表现
在哪⾥?
上次已经为⼤家介绍过java多线程的同步与异步,为⼤家详细分析了这两者的基本概念,今天再来详细的解析⼀下这两者之间的区别,并且它们的表现也是不同的,⼀起来了解⼀下吧。
⾸先,他们最⼤的区别是,同步需要等待,⽽异步⽆需等待。
举个例⼦说明⼀下:
普通B/S模式(同步)AJAX技术(异步)
同步:提交请求->等待服务器处理->处理完毕返回这个期间客户端浏览器不能⼲别的事。
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕。
说的再通俗易懂点,同步是按顺序执⾏,执⾏完⼀个再执⾏下⼀个,需要等待、协调运⾏。异步就是彼此独⽴,在等待某事件的过程中继续做⾃⼰的事,不需要等待这⼀事件完成后再⼯作。
线程就是异步实现的⼀个⽅式。异步是让调⽤⽅法的主线程不需要同步等待另⼀线程的完成,从⽽可以
让主线程⼲其它的事情。异步和多线程并不是⼀个同等关系,异步是最终⽬的,多线程只是我们实现异步的⼀种⼿段。异步是当⼀个调⽤请求发送给被调⽤者,⽽调⽤者不⽤等待其结果的返回⽽可以做其它的事情。
实现异步可以采⽤多线程技术或则交给另外的进程来处理。
同步和异步区别:(好处和坏处)
同步可以避免出现死锁,读脏数据的发⽣。⼀般共享某⼀资源的时候⽤,如果每个⼈都有修改权限,同时修改⼀个⽂件,有可能使⼀个⼈读取另⼀个⼈已经删除的内容,就会出错。
同步就会按顺序来修改。但是,同步需要等待资源访问结束,浪费时间,效率低。
异步则可以提⾼效率,现在cpu都是双核,四核,异步处理的话可以同时做多项⼯作,当然必须保证是可以并发处理的。
但是安全性较低。
同时,需要注意的是,异步是⽬的,⽽多线程是实现这个⽬的的⽅法。异步是说,A发起⼀个操作后(⼀般都是⽐较耗时的操作,如果不耗时的操作就没有必要异步了),可以继续⾃顾⾃的处理它⾃⼰的事⼉,不⽤⼲等着这个耗时操作返回
ajax是同步还是异步⽽线程的适⽤范围则是那种需要长时间CPU运算的场合,例如耗时较长的图形处理和算法执⾏。但是往往由于使⽤线程编程的简单和符合习惯,所以很多朋友往往会使⽤线程来执⾏耗时较长的I/O操作。这样在只有少数⼏个并发操作的时候还⽆伤⼤雅,如果需要处理⼤量的并发操作时就不合适了。
异步与多线程,从辩证关系上来看,异步和多线程并不时⼀个同等关系,异步是⽬的,多线程只是我们实现异步的⼀个⼿段。
什么是异步:异步是当⼀个调⽤请求发送给被调⽤者,⽽调⽤者不⽤等待其结果的返回.实现异步可以采⽤多线程技术或则交给另外的进程来处理。
总⽽⾔之,同步与异步之间是相辅相成相互合作的关系,这两者可以联系在⼀起进⾏理解。java中这种琐碎的知识点还是很多的,也需要⼤家多费些⼼思。想要了解更多java基础知识和常见问题,敬请关注奇Q⼯具⽹。
推荐阅读:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。