美文网首页
【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流(非阻塞)

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