小小科普----同步和异步

112 阅读1分钟

大致讲解

同步(synchronous)就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。 “同”字从字面上容易理解为一起动作,其实不然,“同”字应是指协同、协助、互相配合。能表示前者意义的是“并发”。

那么异步就与同步相反,就像两个人走路,每个人按照自己的节奏走,步伐不一定要一致。 同步/异步这对概念其实在不同的领域有不同的含义。

在多线程的领域,其实只有同步的概念,当两个或两个以上的线程共享某些资源或需要相互配合来完成某些工作时,就必须通过线程同步来协调各个线程运行的次序。

比如在线程A和B配合工作时,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。或者当线程A和B共享一个资源时,如果同一时间读写这个资源,就会发生资源竞争的问题,这时就只能允许某个时间点只有一个线程占有资源,另外一个线程等待,这也是线程同步。