区分同步和异步的关系
-
所谓同步,指的就是协同步调。既然称为协同,所以至少要有两个或两个以上的事物同时存在。
协同的最后结果就是:多个事物不能同时进行,必须一个一个的来,上一个事物结束以后,下一个事物才能够开始。
那么当前一个事物正在进行时,其它事物都在做什么呢?从专业角度来看并没有要求,但一般情况下都是处于一种在“等待”的状态,因为通常情况下后面事物的正常进行都是依赖前面事物的结果或前面事物正在使用的资源。
因此,我们可以简单的认为,同步更关注的角度是从宏观整体来看,多个事物是一种一个一个的串行化关系,绝对不会出现交叉的情况。
所以,自然也不需要去关注某个瞬间某个具体事物是处于一个什么状态。运用在实际中一个简单的例子是“排队”的场景。所谓的异步,就是步调各异。既然是各异,那就必然是都不相同。
所以结果就是:多个事物可以各自进行,谁都不用管谁,并且所有的事物都在同时进行中。换句话来说就是,同步就是多个事物不能同时开工,异步就是多个事物可以同时开工。
并且在异步中一定要去体会“多个事物”的情况,多个线程是多个事物,多个方法也是多个事物,多个语句也可以是多个事物,多个CPU指令也能够称为多个事物等。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏