zoukankan      html  css  js  c++  java
  • java的IO与NIO

    IO与NIO
    	IO与NIO最重要的区别是数据打包和传输的方式不同,IO以流的方式处理数据,而NIO以块的方式处理数据。
    	面向流的IO一次写入或读取一个字节的数据,可以链接多个过滤器来对字节流进行处理,操作和应用都比较简单,但是效率较低。
    	面向块的NIO一次写入或读取一个数据块,处理数据要快得多,但是没有IO简节,容易理解。
    NIO的BUFFERd
    	Buffer有3个私有属性分别是:
    		a)	postion,跟踪向缓冲区写了多少数据或者从缓冲区读了多少数据。
    		b)	limit,表示有多少数据需要取走,或者有多少数据需要写入。
    		c)	capacity,表示缓冲区的最大容量。
    NIO的CHANNEL
    	Channel是对IO流的封装,Channel是双向的,可以ByteBuffer的方式读或者写。
    NIO的异步通信
    	NIO的异步IO是一种非阻塞式的IO实现,IO通信在read时会阻塞着,直到有数据可读。但NIO不会阻塞,他通过事件的机制,当某个通道有数据可读时,会触发相应的事件来处理,不用启大量的线程来轮询读取数据。
    	其实NIO也并非完全不阻塞,Selector的select方法就是阻塞的,直到他所监听的事件中有事件被触发时才会解除阻塞。
    
    
  • 相关阅读:
    IEEE 网址
    知乎上非常棒的机器学习专栏
    怎样认识比你优秀的人并和他们成为朋友?
    影藏铜皮,显示原点与更改
    PCB检查事项,生成钻孔表
    布局-同样模块复用
    制作DIP Package及DIP焊盘制作,不规则焊盘制作
    制作SMD Package及SMD焊盘制作
    导入网络表
    导入DXF文件
  • 原文地址:https://www.cnblogs.com/zengxianxi/p/3618977.html
Copyright © 2011-2022 走看看