• 同步、异步以及阻塞、非阻塞


    • 1,同步和异步是针对应用程序和内核的交互而言的。
    • 2,阻塞和非阻塞是针对于进程在访问数据的时候,根据IO操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值。

    由上描述基本可以总结一句简短的话,同步和异步是目的,阻塞和非阻塞是实现方式。

    同步阻塞: 
    在此种方式下,用户进程在发起一个IO操作以后,必须等待IO操作的完成,只有当真正完成了IO操作以后,用户进程才能运行。JAVA传统的IO模型属于此种方式。

    同步非阻塞: 
    在此种方式下,用户进程发起一个IO操作以后边可返回做其它事情,但是用户进程需要时不时的询问IO操作是否就绪,这就要求用户进程不停的去询问,从而引入不必要的CPU资源浪费。其中目前JAVA的NIO就属于同步非阻塞IO。 
    异步: 
    此种方式下是指应用发起一个IO操作以后,不等待内核IO操作的完成,等内核完成IO操作以后会通知应用程序。

    如果你想吃一份宫保鸡丁盖饭:

    同步阻塞:你到饭馆点餐,然后在那等着,还要一边喊:好了没啊!

    同步非阻塞:在饭馆点完餐,就去遛狗了。不过溜一会儿,就回饭馆喊一声:好了没啊!

    异步阻塞:遛狗的时候,接到饭馆电话,说饭做好了,让您亲自去拿。

    异步非阻塞:饭馆打电话说,我们知道您的位置,一会给你送过来,安心遛狗就可以了。

  • 相关阅读:
    [转]2013豆瓣校园招聘研发类笔试题
    【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
    [转]2013百度校园招聘-机器学习和数据挖掘工程师-笔试题
    [转]一个应届计算机毕业生的2012求职之路
    图片镜像
    家有学霸的CEO
    盯盯拍Android App 3.0指导
    淘宝领取金币
    儿童散光眼的分类
    女孩被宠坏叫爷爷滚开
  • 原文地址:https://www.cnblogs.com/stanljj/p/8609486.html
Copyright © 2020-2023  润新知