同步和异步的区别和联系以及一般在什么情况下使用它们

     对于同步和异步而言,是所有程序员都应该的掌握的基本内容。由于同步和异步设计的知识面比较多,这里我仅仅进行一下简单的讲解。

     其根本目的在于理解同步和异步的含义以及应用。至于更详细的信息可以上网查阅相关资料。

     首先如果数据在线程间共享的话,那么就需要涉及到同步相关的内容了。例如正在写的数据可能被另外一个线程读到,而正在读的数据

     可能被另外一个线程写到,这些数据是共享的数据。这时就必须进行同步存取操作,否者前后读取的数据就有可能不一致。

     再存钱为例:

     有一个共享的银行账号110,原来里面有余额1000元,现在有两个用户A,B都要进行取钱

     首先A查询账号剩余1000元,A想要取出200元,A点击取款,系统正在处理取款事项...

     紧接着在A取款的过程中B查询同一个账号还有1000元,B也想要取走200元。

     A取完款后剩余800元,正常,而B取完款后理论上应该剩余600元,但是实际上还是剩余800元。

     试问,110账号多余的这200块钱由谁出呢?

     到这里应该明白同步的重要性了吧...如果同步搞不好,最后的200块钱就得由你出了~~哈哈哈~

     其次对于异步而言,

     当应用程序在对象上调用一个需要花费很长时间来执行的方法的时候,并且不需要让程序等待对方返回,这时就应该使用异步编程。

     从效率上而言,以不变成更给力哦~~~(实现起来比较费劲~~)

原文地址:https://www.cnblogs.com/xiohao/p/4308866.html