Java NIO由下列几个核心部分组成:

  •     Channels(通道)
  •     Buffers(缓冲区)
  •     Asynchronous IO(异步IO)

Channel 和 Buffer

  基本上所有的IO在NIO中都是从一个Channel开始,Channel有点像流。数据可以从Channel读到Buffer中,也可以从Buffer写到Channel中

Channel的实现类

  • FileChannel
  • DatagramChannel
  • SocketChannel
  • ServerSocketChannel

Buffer的实现

  • ByteBuffer
  • CharBuffer
  • DoubleBuffer
  • FloatBuffer
  • IntBuffer
  • LongBuffer
  • ShortBuffer

Selector

  Selector允许单线程处理多个Channel。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用Selector就会很方便。

要使用Selector注册Channel,就得向Selector注册Channel,然后调用它的select()方法。这个方法会一直阻塞到某个注册的通道有事件就绪。一旦这个方法返回,线程就可以处理这些事件。

转载自并发编程网 – ifeve.com

最新文章

  1. ip封包
  2. iframe高度自适应内容
  3. C语言范例学习02
  4. hdu 猜数字
  5. HDU 5877 Weak Pair(弱点对)
  6. Xilinx 网站资源导
  7. [HDU 1963] Investment
  8. 检测android的网络链接状态
  9. DotNetBar.Bar控制Y顺序控制方向
  10. Java 启动线程的方式
  11. Snuke's Subway Trip
  12. javascript 回调, 单线程执行
  13. String的split()方法可以将字符串按照特定的分隔符拆分成字符串数组
  14. 【洛谷P1659】啦啦队排练
  15. CF1045G:AI robots(CDQ分治)
  16. GIS中栅格数据结构的显示与计算
  17. KDD Cup 99网络入侵检测数据的分析
  18. MySQL 全局锁、表锁以及行锁
  19. Jfinal QuartzPlugin 简单使用案例
  20. FineBI表单如何更新

热门文章

  1. 范围for、new内存动态分配、nullptr
  2. windows 安装python问题总结
  3. USART列子
  4. jquery ajax的getJSON使用
  5. mysql数据类型 完整性约束 054
  6. c#操作mysql
  7. vue html页面打印功能vue-print
  8. new Map的妙用
  9. Junit打包测试
  10. loadView 与 viewDidLoad 和 didReceiveMemoryWarning与viewDidUnload 详解