Java NIO Fundamentals
来源:互联网 发布:php exec w3c 编辑:程序博客网 时间:2024/06/05 19:25
Basic Concepts
1. Channel & Buffer: data is always read from channel to buffer, or writtern from buffer to channel
2. Non-blocking IO: non-blocking while read and write data
3. Selector: A single thread monitor multiple channels for data
http://tutorials.jenkov.com/java-nio/index.html
Channel & Buffer
Selector
Single thread using just one selector can handle many connections open (channels), but low traffic on each connection (why low traffic?)
1. POSA2 Selector Pattern
2. Why should low traffic is assumption of channel is low traffic?
3. What is better way to handle the heavy traffic application?
4. Is channel also at the same thread of selector?
To use a selector, register a channel with it
Channels
1. FileChannel <=> Files
2. DatagramChannel <=> UDP
3. SocketChannel <=> TCP
4. ServerSocketChannel, listen for incoming TCP connections, like a web server. For each connection, a SocketChannel is created
Buffer
Four steps using buffer:
1. Write data into buffer
2. Call buffer.flip() // filp switch from writting mode to reading modepos
3. Read data out of buffer
4. Call buffer.clear() or buffer.compact() // once all data have read all the data, need to clear the buffer, to make it ready for writing again
capacity & position & limit
capacity: the fixed memory block for buffer
position and limit are depends on which mode (the writing mode or reading mode?)
References:
http://tutorials.jenkov.com/java-nio/non-blocking-server.html#non-blocking-server-github-repository
http://www.drdobbs.com/jvm/high-performance-io-with-java-nio/184406242
- Java NIO Fundamentals
- Java Fundamentals Programming Structures
- Java fundamentals of basic IO
- Java NIO: NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- NIO--JAVA NIO 入门
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- 错误处理页例子
- iOS 进度框(一) MBProgressHUD
- 运动目标跟踪(三)--搜索算法优化搜索方向之Meanshift
- 详细探究Spark的shuffle实现和hadoop mapreduce shuffle原理
- html的meta总结
- Java NIO Fundamentals
- 【java多线程系列】java内存模型与指令重排序
- 进度条代码的编写
- Android 系统稳定性 - ANR(一)
- 【bzoj1492】【NOI2007】【货币兑换】【斜率优化+cdq分治】
- 链表
- [codevs1174] 靶形数独
- NPOI之Excel——合并单元格、设置样式、输入公式
- Android 系统稳定性 - ANR(二)