同步、异步、阻塞、非阻塞

同步VS异步

网络通讯中的同步机制和异步机制是描述通讯模式的概念。服务器

  • 同步机制网络

    • 发送方发送请求后,须要等待接收到接收方返回的响应后,才接着发送下个请求
    • 全部的请求在服务端获得同步,发送方和接收方对请求的处理步调是一致的
  • 异步机制异步

    • 发送方发送请求后,不等待接收方响应这个请求,就继续发送下个请求
    • 全部来自发送方的请求造成一个队列,接收方处理完成后通知发送方

阻塞VS非阻塞

阻塞和非阻塞用来描述进程处理调用的方式,在网络通讯中,主要指网络套接字Socket的阻塞和非阻塞方式,而Socket的实质也就是IO操做。性能

  • 阻塞
    • 调用结果返回以前,当前线程从运行状态被挂起,一直等到调用结果返回以后,才进入就绪状态
  • 非阻塞
    • 若是调用结果不能立刻返回,当前线程也不会被挂起,而是当即返回执行下一个调用

在网络通讯中,常常能够看到有人将同步和阻塞等同、异步和非阻塞等同。事实上,这两对概念有必定的区别,不能混淆。两对概念的组合,就会产生四个新的概念,同步阻塞、异步阻塞、同步非阻塞、异步非阻塞。线程

同步阻塞

发送方向接收方发送请求后,一直等待响应;接收方处理请求时进行的IO操做若是不能立刻获得结果,就一直等到返回结果后,才响应发送方,期间不能进行其余工做。队列

同步非阻塞

发送方向接收方发送请求后,一直等待响应;接收方处理请求时进行的IO操做若是不能立刻获得结果,就当即返回,去作其余事情,但因为没有获得请求处理结果,不响应发送方,发送方一直等待。一直到IO操做完成后,接收方得到结果响应发送方后,发送方才进入下一次请求过程。进程

异步阻塞

发送方向接收方发送请求后,不用等待响应,能够接着进行其余工做;接收方处理请求时进行的IO操做若是不能立刻获得结果,就一直等到返回结果后,才响应发送方,期间不能进行其余工做。同步

异步非阻塞

发送方向接收方发送请求后,不用等待响应,能够继续其余工做;接收方处理请求时进行的IO操做若是不能立刻获得结果,也不等待,而是立刻返回去作其余事情。当IO操做完成之后,将完成状态和结果通知接收方,接收方再响应发送方。请求

参考资料

《Nginx高性能Web服务器详解》通信

相关文章
相关标签/搜索