zoukankan      html  css  js  c++  java
  • 同步异步和阻塞非阻塞

    一、同步与异步

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

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

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

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

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

    二、阻塞与非阻塞

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

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

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

    三、之间的联系

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

  • 相关阅读:
    数据清洗
    JAVA多线程三种实现方式
    QT-4.8.6 编译配置过程
    qt 编译问题总结
    [转载]tslib1.4与Qt4.8.6的交叉编译与移植
    STC12C5A60S2 @ 22.0184Mhz 精确延时
    STC12C5A60S2 双串口通信
    C# Bitmap 复制
    TextMate2 最新版下载及源码编译过程
    mac系统 PHP Nginx环境变量修改
  • 原文地址:https://www.cnblogs.com/kikis/p/10715189.html
Copyright © 2011-2022 走看看