何为同步、何为异步

同步异步的定义

定义:同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。
所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回. 但是一旦调用返回,就得到返回值了; 换句话说,就是由调用者主动等待这个调用的结果;
异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果; 换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果; 而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用

举个例子:10.1去游乐场玩过山车,工作人员告诉你,你需要等待,然后你就这等待(这是同步);工作人员留你的联系方式说可以玩的时候给你说你再来,然后你离开等待电话(这是异步)。

**注意:**我们回忆在讲多进程多线程的时候, 也提到同步和互斥. 这里的同步通信和进程之间的同步是完全不想干的概
念.进程/线程同步也是进程/线程之间直接的制约关系是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系. 尤其是在访问临界资源的时候

不能混为一谈的阻塞和非阻塞

阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态
同步和异步关注的是程序在等待调用过程中调用者主动等待还是完成后通知
阻塞调用是指调用结果返回之前,当前线程会被挂起. 调用线程只有在得到结果之后才会返回.
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程

发布了30 篇原创文章 · 获赞 88 · 访问量 2278

猜你喜欢

转载自blog.csdn.net/famur/article/details/105029243