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方法就是阻塞的,直到他所监听的事件中有事件被触发时才会解除阻塞。
    
    
  • 相关阅读:
    动态规划之最大子序和(53)
    退出系统
    请维护容差码的容差限制-OMR6
    SAP561该物料不可能有库存记帐
    虚拟机锁定文件失败,disk启动失败
    该物料不可能有库存记账
    其他收货入库
    有关业务 事件类型wa 在 的号码范围不存在
    给供应商付款
    T169V表目:不存在
  • 原文地址:https://www.cnblogs.com/zengxianxi/p/3618977.html
Copyright © 2011-2022 走看看