1、什么是同步,什么是异步?
异步,在计算机编程中,是指独立于主程序流程和处理此类事件的方式的事件的发生。这些可能是“外部”事件,例如信号的到达,或者由程序发起的与程序执行同时发生的动作,而程序不会阻塞以等待结果(from 维基百科)。这里比较重要的就是最后一句,程序不会阻塞以等待结果。如下图所示,同步(synchronous)就是需要在processB执行完并返回结果后才会继续执行后续的processA,一旦processB的执行发生意外,整个程序将会阻塞,无法继续执行。而异步(asynchronous)则是在调用processB的同时也能执行其他不需要等待processB返回结果的任务,使整个主流程不会因processB发生的问题而中断。