美文网首页
1.Nette入门第一章——IO演进

1.Nette入门第一章——IO演进

作者: NormanHu | 来源:发表于2017-07-18 00:34 被阅读33次

1. IO 基础

1.1. linux网络IO模型

  1. 阻塞IO模型
  2. 非阻塞IO模型
  3. IO多路复用模型(NIO)
  4. 信号驱动IO模型
  5. 异步IO模型

1.2. IO多路复用模型

目前支持IO多路复用的系统调用有select,pselect,poll,epollepoll相对于select特点如下:

  1. 支持一个进程打开的socket描述符(FD)不受限制(仅受限与操作系统的最大文件句柄数)。1GB内存大约是10W个句柄,通过cat /proc/sys/fs/file-max 查看。
  2. IO效率不会随着FD数目的增加而线性下降。select/poll每次是线性扫描全部集合,因此会线性下降。epoll只处理活跃的socket,但如果所有的socket都活跃, epoll并不比select/poll高很多。
  3. 使用mmap加速内核与用户空间的消息传递。epoll是通过和用户空间mmap同一块内存实现。
  4. epoll的API更加简单。

2. JAVA IO演进之路

JDK1.4之前--BIO
JDK1.4--NIO以JSR-51的身份出现。但是所有文件操作都是同步阻塞调用,不支持文件异步读写操作。
JDK1.7--NIO2.0由JSR-203演进而来。具体改进地方如下:

  1. 提供批量获取文件属性的API。
  2. 提供AIO功能,支持基于文件的异步IO和套接字的异步操作。

相关文章

  • 1.Nette入门第一章——IO演进

    1. IO 基础 1.1. linux网络IO模型 阻塞IO模型 非阻塞IO模型 IO多路复用模型(NIO) 信...

  • NIO

    JavaIO演进之路 IO基础入门 Linux 网络IO模型简介 linux内核把所有的外部设备都看做一个文件,对...

  • IO 演进

    写程序难免与 IO 打交道,无论是文件 IO、网络 IO,涉及到数据的存储、交换,大多数情况都会见到IO 的身影。...

  • Java的IO演进(第一章)

    Java 1.4之前的早期版本,Java对IO的支持并不完善,Java的同步阻塞IO被大家所诟病,具体表现如下: ...

  • Java IO 演进之路

    必须明白的几个概念 阻塞(Block)和非阻塞(Non-Block) 阻塞和非阻塞是在缓冲区数据没有准备就绪的情况...

  • 演进式数据架构

    演进式架构支持跨多个维度的引导性增量变更。 ——《演进式架构》 这是《演进式架构》这本书第一章第一节对“演进式架构...

  • SSM项目--01大型Java项目架构演进解析

      本文是入门SSM系列的大型Java项目架构演进解析篇,在这里记录一些在项目演进中常说的一些“高大上”名词的含义...

  • 【JAVA IO】JAVA IO 源码概述

    【JAVA IO】JAVA IO 源码概述 以上的图和表,是经典的JAVA IO的部分,在大量的JAVA语言入门读...

  • 10.缓冲流、转换流、序列化流

    主要内容 缓冲流 转换流 序列化流 打印流 第一章 缓冲流 昨天学习了基本的一些流,作为IO流的入门,今天我们要见...

  • Google DataBinding 框架学习资料

    入门指南比较全面的入门demo 其他资料https://realm.io/cn/news/data-binding...

网友评论

      本文标题:1.Nette入门第一章——IO演进

      本文链接:https://www.haomeiwen.com/subject/zqcckxtx.html