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

解决方案 »

  1.   

    同步(synchronized)和异步(asynchronized)是对于多线程(multi-threading)而言的
    同步可防止并发 主要出于数据安全的考虑 
    如某一线程在执行完对数据的加法操作后 在还没来得及使用新数据之前 被另一线程就抢先执行了减法操作
    这样它就没法得到它单一施加影响的数据结果,存在安全隐患异步允许并发
    ajax技术通常都是异步实现的 
    去服务端请求数据的同时 前台的操作不会阻塞 而是异步进行 节省时间的同时保证了效率
      

  2.   

    你给你媳妇存钱,先查了一下是1000,你要存100,结果你存的时候你媳妇也正在取钱,她准备取100,如果这个时候不思锁定其中一人的动作,后果就很可能是,你媳妇取走了100,本来应该冲至账户金额为900,待还没有重置,你的存动作就过来了,因为之前你那里得到的信息是1000所以存的时候是1000+100,再以重置帐户,变成1100了 而不是900
    这就是同步(一个人占用了,我就不能再做了)异步就是互不影响
    ajax的第一个a就是异步,你一边浏览网页,后台一边和web服务器通信 检查你的用户名是否重复,但你却在前台根本看不出来
      

  3.   

    通俗解释
    同步:必须保持相同步调。我在你前面就会始终在你前面,即使你跑的比我快又怎样,了不起啊,我有synchronized给我撑腰,你超我一个试试看,抽你丫的不可!异步:(synchronized不知去向)你丫刚不是牛x吗?我还就超了你了,怎么招吧,你抽我一个看看,有本事冲这来!