黑马程序员技术交流社区
标题:
同步和异步有何异同,在什么情况下分别使用他们?举例说明
[打印本页]
作者:
郭炜
时间:
2012-3-14 11:29
标题:
同步和异步有何异同,在什么情况下分别使用他们?举例说明
同步和异步有何异同,在什么情况下分别使用他们?举例说明
作者:
宋洪祥
时间:
2012-3-14 11:51
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
作者:
潘许超
时间:
2012-3-14 11:57
同步(synchronized)和异步(asynchronized)是对于多线程(multi-threading)而言的
同步可防止并发 主要出于数据安全的考虑
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
异步允许并发
ajax技术通常都是异步实现的
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
例子:
假如你给你媳妇存钱,先查了一下是1000,你要存100,结果你存的时候你媳妇也正在取钱,她准备取100,如果这个时候不锁定其中一人的操作,后果就很可能是,你媳妇取走了100,本来应该冲至账户金额为900,待还没有重置,你的存动作就过来了,因为之前你那里得到的信息是1000所以存的时候是1000+100,再以重置帐户,变成1100了 而不是900
这就是同步(一个人占用了,我就不能再做了)
异步就是互不影响
ajax的第一个a就是异步,你一边浏览网页,后台一边和web服务器通信 检查你的用户名是否重复,但你却在前台根本看不出来
(注意本站搜索)
作者:
冯林
时间:
2012-3-14 12:00
同步和异步,在我看来,区别是:2件事情是否存在直接依赖关系。存在是同步,不存在是异步。同步是为了保证逻辑的正确,异步是在能保证逻辑正确的前提情况下,而提高效率。{:soso_e112:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2