分类目录归档:编程学习

同步(synchronous)Vs异步(asynchronous)与阻塞(blocking)Vs非阻塞(non-blocking)的困惑

同步(synchronous)Vs异步(asynchronous)与阻塞(blocking)Vs非阻塞(non-blocking)的概念理解有些迷惑,所以Google了一下,开始越看越明白,渐渐地越看越糊涂,为何?因为不同文章间的描述差异比较大,下面选取两篇比较有代表性观点的文章:

看完这些文章后,再说说我的理解,暂不管其对与否:

  • 阻塞:等待直到可操作时才返回;
  • 非阻塞:当不可操作时不等待(例如不能得到接口、不能传递消息等),直接返回;
  • 同步:通知消息并等消息处理完了以后才返回,如果他需要的资源没有就绪,函数就会进入阻塞状态,直到资源就绪后返回继续执行;
  • 异步:通知消息后返回,对消息的处理完成后通过“状态”、“通知”、“回调”等方式得知消息已处理; 继续阅读