同步和异步有何异同,在什么情况下分别使用他们?举例说明。

javaxiaotuzi 2008-02-22 12:56:21
请教高手:同步和异步有何异同,在什么情况下分别使用他们?举例说明。
...全文
1617 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijinru339 2009-05-26
  • 打赏
  • 举报
回复
谢谢大家的分析 很受益
zhoumeixuan530 2009-01-12
  • 打赏
  • 举报
回复
看了2楼的回答明白了很多,举例的很好
olivesoup 2008-02-25
  • 打赏
  • 举报
回复
这个倒分也太明显啦!而且还是一字不差复制4楼的回答!
javaxiaotuzi 2008-02-23
  • 打赏
  • 举报
回复
还有没有更好答案啊?
刘彬彬 2008-02-23
  • 打赏
  • 举报
回复
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
olivesoup 2008-02-22
  • 打赏
  • 举报
回复
通俗解释
同步:必须保持相同步调。我在你前面就会始终在你前面,即使你跑的比我快又怎样,了不起啊,我有synchronized给我撑腰,你超我一个试试看,抽你丫的不可!

异步:(synchronized不知去向)你丫刚不是牛x吗?我还就超了你了,怎么招吧,你抽我一个看看,有本事冲这来!


枫叶rain 2008-02-22
  • 打赏
  • 举报
回复
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
zhitaorao 2008-02-22
  • 打赏
  • 举报
回复
同步是为了保证数据的读写安全!当用户并发操作时对数据进行保护,防止错误的读写数据!
wuxo84 2008-02-22
  • 打赏
  • 举报
回复
你给你媳妇存钱,先查了一下是1000,你要存100,结果你存的时候你媳妇也正在取钱,她准备取100,如果这个时候不思锁定其中一人的动作,后果就很可能是,你媳妇取走了100,本来应该冲至账户金额为900,待还没有重置,你的存动作就过来了,因为之前你那里得到的信息是1000所以存的时候是1000+100,再以重置帐户,变成1100了 而不是900
这就是同步(一个人占用了,我就不能再做了)

异步就是互不影响
ajax的第一个a就是异步,你一边浏览网页,后台一边和web服务器通信 检查你的用户名是否重复,但你却在前台根本看不出来
dracularking 2008-02-22
  • 打赏
  • 举报
回复
同步(synchronized)和异步(asynchronized)是对于多线程(multi-threading)而言的
同步可防止并发 主要出于数据安全的考虑

如某一线程在执行完对数据的加法操作后 在还没来得及使用新数据之前 被另一线程就抢先执行了减法操作
这样它就没法得到它单一施加影响的数据结果,存在安全隐患

异步允许并发
ajax技术通常都是异步实现的
去服务端请求数据的同时 前台的操作不会阻塞 而是异步进行 节省时间的同时保证了效率

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧