zoukankan      html  css  js  c++  java
  • 网络编程基础:同步与异步的区别、阻塞与非阻塞的区别

    同步和异步是针对应用程序和内核的交互(应用程序与操作系统的处理关系,如何处理、如何执行)

    同步:指用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪

    异步:指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知

    举例:

    银行取款操作

    同步:自己亲自持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)

    异步:委托他人持银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS[银行卡和密码],OS需要支持异步IO操作的API);

    --------------------------------------------------------------

    阻塞和非阻塞是针对于进程在访问数据时,根据IO操作的就绪状态来采取的不同方式,是一种读取或者写入操作方法的实现方式

    阻塞方式:在读取或者写入方法时将一直等待

    非阻塞方式:在读取或者写入方法时会立即返回一个状态值

    举例:

    银行取款操作

    阻塞:ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成后再返回)

    非阻塞:柜台取款,取个号码,然后做自己的事情,等广播通知你办理,没叫到你的号你就不能去办理,可以不间断询问大堂经理排到了没,大堂经理如果说你还没到你也不能去(使用非IO阻塞时,如果不能读写Java调用会马上返回,当IO事件分发器通知可读写时再继续进行读写,不断循环直到读写完成)

  • 相关阅读:
    ASP.NET MVC请求处理管道生命周期的19个关键环节(13-19)
    ASP.NET MVC请求处理管道生命周期的19个关键环节(7-12)
    ASP.NET MVC请求处理管道生命周期的19个关键环节(1-6)
    关于领域模型
    WebForm和MVC的一些知识(转)
    抽象工厂
    SCP,scp linux2台机器之间如何传输文件
    mysql卸载(windows)【转】
    (5.2.3)配置服务器参数——服务器性能估算
    Windows命令行使用FTP
  • 原文地址:https://www.cnblogs.com/chai-blogs/p/13232675.html
Copyright © 2011-2022 走看看