• 同步异步和阻塞非阻塞


    一、同步与异步

    重点是是否强调事件发生的顺序:请求发出后,是否需要等待请求结果,才能继续执行其他操作。

    1. 同步:同步就是发起一个请求,直到请求返回结果之后,才进行下一步操作。简单来说,同步就是必须一件事一件事的做,等前一件做完了,才能做下一件事。

                核心:Java主动读写数据,进行IO操作。

    2. 异步:当一个异步操作发出后,调用者在没有得到结果之前,可以继续执行后续操作。

                核心:Java委托给内核(OS)完成读写操作,并且通知Java读写完成。

    二、阻塞与非阻塞

    重点在程序等待结果时的状态:进程/线程需要操作的数据如果尚未就绪,是否妨碍了当前进程/线程的后续操作。

    1. 阻塞:在调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会被唤醒执行后续的操作。

    2. 非阻塞:在结果没有返回之前,该调用不会阻塞住当前线程。

    三、之间的联系

    在处理IO时,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO。

  • 相关阅读:
    php数组的创建及操作
    继承的几种方式
    js对象的创建与原型总结
    对象的创建
    变量与内存
    js函数的几个特殊点
    正则表达式的几个简单验证
    数组排序sort()
    对象与数组
    js函数动态传参
  • 原文地址:https://www.cnblogs.com/kikis/p/10715189.html
Copyright © 2020-2023  润新知