IO的4种方式 博客分类: nio java network
Blocking IO
{
byte[] buffer = ...
read(socket, buffer); // blocking
process(buffer);
}
Non blocking (Sync) IO
{
byte[] buffer = ...
while ( read(socket, buffer) != 'succeed' ) ; // non blocking but sync
process (buffer);
}
Multiplexing blocking IO (blocking, sync or async?, to the socket processing thread, it's sync; to the invoking client, it's async)
{
register(socket);
while (true) {
sockets = select();// blocking until data is ready for read
for (s : sockets) {
if (can_read(s) ) {
// data is ready, will not be blocked
read(s, buffer);
process(buffer);
}
}
}
}
4. Async Non blocking
{
register(socket, handleBuffer);
}
handleBuffer(buffer) {
// process
}
上一篇: JS如何获取元素的不透明属性值?
下一篇: 回顾之三:接触外企
推荐阅读
-
IO的4种方式 博客分类: nio java network
-
装饰者模式--除继承外的另一种扩展方式 博客分类: 设计模式 android设计模式装饰者模式java.io
-
按目录递归清理文件每行开头结尾的空白 博客分类: java综合 java清理文件IO
-
Java io nio netty三种方式实现简单聊天功能 博客分类: java基础 ionionetty聊天
-
Java NIO与IO 博客分类: java相关 javaNIOIO
-
Java传统IO 博客分类: Java NIO JavaIO
-
CPU 与I/O 读写的方式 博客分类: java面试 cpuio
-
Java NIO and IO 博客分类: Java javaiochannelstreamNIO
-
Java IO流总结 博客分类: Java IO和NIO javaio
-
java流的总结——从原理分析 博客分类: java IO javaio数据源字节字符