zoukankan      html  css  js  c++  java
  • 异步与同步,阻塞与非阻塞的正确认识

    1.同步和异步:

    同步和异步关注的是消息通信机制,
    同步:就是当程序发出一个调用时,此时程序在主动等待调用返回的结果
    异步:就是当程序发出一个调用时,此时程序会继续执行,而不会等待这个调用的结果,被调用者会通过状态,通知,或回调函数等处理调用的结果

    2.阻塞和非阻塞:

    阻塞和非阻塞关注的是程序在等待调用结果时的状态
    阻塞:理解为调用返回结果之前,此线程会挂起来,只有在调用返回结果之后程序继续执行
    非阻塞:与阻塞相反,发起调用之后不会等待调用返回结果,继续执行.

    异步非阻塞

    当一个程序A对程序B发起调用后,A程序不被挂起继续执行(非阻塞),调用返回的结果消息由B程序以回调函数等方式返回给A程序,而不是A程序主动去获取的(异步);

    异步阻塞

    当一个程序A对程序B发起调用后,A程序被挂起不继续执行(阻塞),调用返回的结果消息由B程序以回调函数等方式返回给A程序,而不是A程序主动去获取的(异步);

    同步非阻塞

    当一个程序A对程序B发起调用后,A程序不被挂起继续执行(非阻塞)但会间断性来获取结果消息,调用返回的结果消息由A程序主动获取(同步);

    同步阻塞

    当一个程序A对程序B发起调用后,A程序被挂起不继续执行(阻塞),调用返回的结果消息由A程序主动获取(同步); 

    更多详情

  • 相关阅读:
    使用 requests 维持会话
    使用 requests 发送 POST 请求
    使用 requests 发送 GET 请求
    requests 安装
    使用 urllib 分析 Robots 协议
    使用 urllib 解析 URL 链接
    使用 urllib 处理 HTTP 异常
    使用 urllib 处理 Cookies 信息
    使用 urllib 设置代理服务
    按单生产程序发布
  • 原文地址:https://www.cnblogs.com/changtao/p/10725862.html
Copyright © 2011-2022 走看看