zoukankan      html  css  js  c++  java
  • java普通io(stream)处理文件读写的过程

    场景:使用java的stream,从文件a读取内容,然后写进文件b,整个过程如下图所示(以linux系统为例)

    步骤解析:

    1.用户空间向内核空间发出指令——我要读取文件a

    2.系统切换上下文,从用户空间切到内核空间,内核空间准备向硬盘读取内容

    3.硬盘内容以DMA形式读取进内核缓冲区(tips:DMA——Directory Memory Access 直接内存访问)

    4.系统切换上下文,从内核空间切到用户空间,把内核空间的缓冲区的内容写入用户缓冲区

    5.业务逻辑处理

    6.准备写入b文件,用户空间向内核空间发出指令——我要写文件b,并且把用户缓冲区的内容写入内核缓冲区

    7.系统切换上下文,从用户空间切到内核空间,内核空间准备向硬盘写入内容

    8.写入成功,系统返回

    9.系统切换上下文,从内核空间切到用户空间,内容写入完毕

    可以看到,传统的io操作,从一个文件的读取到写入,需要进行4次数据拷贝,4次的系统上下文切换

  • 相关阅读:
    DOM操作:
    定时器
    7.thinkphp框架控制器
    1.thinkphp框架介绍
    4.thinkphp框架url访问
    6.thinkphp框架路由
    2.thinkphpk框架基础
    5.thinkphp框架配置文件
    3.thinkphp框架入口文件
    8.thinkphp框架数据库
  • 原文地址:https://www.cnblogs.com/billmiao/p/9872228.html
Copyright © 2011-2022 走看看