美文网首页
【Java】IO流优化之NIO流(非阻塞)

【Java】IO流优化之NIO流(非阻塞)

作者: momxmo | 来源:发表于2020-04-13 11:07 被阅读0次

http://www.importnew.com/28021.html

https://www.zhihu.com/question/56673416

https://www.cnblogs.com/jinjian91/p/9069901.html

重点:实际中,IO流的处理处于系统底层的工作,会存在同步IO和异步IO;(这就是线程读写流,阻塞之后,被唤醒的原因);

底层工作原理:Java I/O底层是如何工作的? - ImportNew

为什么说需要
先线程工作机制原理图:方便理解线程阻塞

原理:阻塞IO流,InputStream、OutputStream是输入和输出流,read()和write()是阻塞方法,她们如何工作呢?原因在于阻塞式的方法在于,我向你获取read()数据,你没有,我在会一直等待(线程阻塞0),其他人也一起候着,只有等到我要到了数据才会执行下去(线程唤起执行)。

由于read方法等待过程很长占用了大量的资源,后来这并不是一种很好的方法,解决这个问题更合适采用监听机制(okio看门狗),监听到数据流中有数据之后再开启线程,执行完毕之后关闭线程,这样就不会影响工作机制;或是采用另外一只方式NIO流;

IO流使用场景:文件读写、串口、通信io(Socket)

相关文章

  • java IO、NIO、AIO

    IO流(同步、阻塞) 、 NIO(同步、非阻塞) 、 NIO2(异步、非阻塞) 概述在我们学习Java的IO流之前...

  • IO和NIO区别

    IO是面向流的,NIO是面向缓冲区的;Java IO的各种流是阻塞的,Java NIO的非阻塞模式;Java NI...

  • 【Java】IO流优化之NIO流(非阻塞)

    http://www.importnew.com/28021.html https://www.zhihu.com...

  • Java NIO 和 IO 之间的主要差别

    NIO 和 IO 之间的主要差别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 ...

  • 40.IO和NIO区别

    一.IO是面向流的,NIO是面向缓冲区的。 二.IO的各种流是阻塞的,NIO是非阻塞模式。 三.Java NIO的...

  • IO与NIO

    IO面向流,阻塞。 NIO面向块(面向缓冲区),非阻塞。

  • Java NIO

    1、IO和NIO的区别? 1)IO面向流、NIO面向缓冲;2)IO是阻塞IO、NIO是非阻塞IO;3)无 与 选择...

  • Java IO

    普通 IO ,面向流,同步阻塞线程。NIO,面向缓冲区,同步非阻塞。 BIO、NIO、AIO的概述首先,传统的 j...

  • NIO

    一、IO和NIO区别 IO是面向流的,阻塞的,单向的; NIO是面向缓冲的,非阻塞的,双向的; 二、缓冲区 2.1...

  • NIO编程

    一、什么是NIO? Java NIO 全称:NoneBlocking IO,非阻塞IO;从Java 1.4提供区...

网友评论

      本文标题:【Java】IO流优化之NIO流(非阻塞)

      本文链接:https://www.haomeiwen.com/subject/clofzqtx.html