zoukankan      html  css  js  c++  java
  • 理论基础03:IO流概述

    按操作对象分类结构图

    同步与异步

    同步: 同步就是发起一个调用后,被调用者未处理完请求之前,调用不返回。

    异步: 异步就是发起一个调用后,立刻得到被调用者的回应表示已接收到请求,但是被调用者并没有返回结果,此时我们可以处理其他的请求,被调用者通常依靠事件,回调等机制来通知调用者其返回结果。

    同步和异步的区别最大在于异步的话调用者不需要等待处理结果,被调用者会通过回调等机制来通知调用者其返回结果。

    阻塞与非阻塞

    阻塞: 阻塞就是发起一个请求,调用者一直等待请求结果返回,也就是当前线程会被挂起,无法从事其他任务,只有当条件就绪才能继续。

    非阻塞: 非阻塞就是发起一个请求,调用者不用一直等着结果返回,可以先去干其他事情。

    举个例子

    你妈妈让你烧水,小时候你比较笨啊,在哪里傻等着水开(同步阻塞)。等你稍微再长大一点,你知道每次烧水的空隙可以去干点其他事,然后只需要时不时来看看水开了没有(同步非阻塞)。后来,你们家用上了水开了会发出声音的壶,这样你就只需要听到响声后就知道水开了,在这期间你可以随便干自己的事情,你需要去倒水了(异步非阻塞)。

    NIO

    1、NIO简介

    Java NIO 是 java 1.4, 之后新出的一套IO接口NIO中的N可以理解为Non-blocking,不单纯是New。

    2、NIO的特性/NIO与IO区别:

    1)IO是面向流的,NIO是面向缓冲区的;

    2)IO流是阻塞的,NIO流是不阻塞的;

    3)NIO有选择器,而IO没有。

    3、读数据和写数据方式:

    1)从通道进行数据读取 :创建一个缓冲区,然后请求通道读取数据。

    2)从通道进行数据写入 :创建一个缓冲区,填充数据,并要求通道写入数据。

    4、NIO核心组件有:

    1)Channels

    2)Buffers

    3)Selectors

  • 相关阅读:
    英语语法最终珍藏版笔记-16定语从句
    U3D-页游-检测机制-webplayer-调试方法
    Unity UGUI 的RectTransform参数的设置
    游戏贴图的基本知识
    游戏贴图与模型基本规范
    【游戏模型】游戏超写实贴图制作技巧
    灯光下角度不同会出现中间的片没有光照
    Unity3d中SendMessage 用法
    C# Hashtable赋值给另一个Hashtable时
    InvalidOperationException: out of sync
  • 原文地址:https://www.cnblogs.com/geryhz/p/10582612.html
Copyright © 2011-2022 走看看