个人简介

Echo Blog


江湖无名 安心练剑
  • Netty-08-linux 通讯模型之 select
    概览 epoll跟select都能提供多路I/O复用的解决方案。 在现在的Linux内核里有都能够支持,其中epoll是Linux所特有,而select则应该是POSIX所规定,一般操作系统均有实现。 select select 与 poll 工作原理: 1、select 主要是采用轮询的方式来实现对就绪的 fd 处理: 2、poll 和 select 基本相同,主要不同在于 p...
    2017-11-16 11:23:06 | Netty
  • Netty-08-linux 通讯模型概览
    IO模型 linux系统IO分为内核准备数据和将数据从内核拷贝到用户空间两个阶段。 从硬盘==》内核空间缓冲区==》用户空间缓冲区 基本概念 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。 ...
    2017-11-16 11:23:06 | Netty
  • Netty-08-通讯模型框架 libuv
    libuv libuv – Asynchronous I/O made simple. libuv is a multi-platform support library with a focus on asynchronous. 参考资料 key word linux libuv doc 中文文档 en doc other 基本使用 linux...
    2017-11-16 11:23:06 | Netty
  • Netty-08-通讯模型框架 libevent
    libevent libevent – an event notification library 功能 libevent API提供了一种机制,用于在文件描述符上发生特定事件或达到超时后执行回调函数。 此外,libevent还支持由于信号或定期超时引起的回调。 libevent旨在替换事件驱动的网络服务器中的事件循环。应用程序只需调用event_dispatch(),然后动态添加...
    2017-11-16 11:23:06 | Netty
  • Netty-07-通讯模型之 NIO
    NIO 编程 JDK 1.4中的java.nio.*包中引入新的Java I/O库,其目的是提高速度。 实际上,“旧”的I/O包已经使用NIO重新实现过,即使我们不显式的使用NIO编程,也能从中受益。 速度的提高在文件I/O和网络I/O中都可能会发生,但本文只讨论后者。 我个人比较倾向于 non-blocking 这种称呼。 简介 NIO我们一般认为是New I/O(也是官方的叫...
    2017-11-16 11:23:06 | Netty
  • Netty-07-通讯模型
    Unix中的I/O模型 Unix定义了五种I/O模型 阻塞I/O 非阻塞I/O I/O复用(select、poll、linux 2.6种改进的epoll) 信号驱动IO(SIGIO) 异步I/O(POSIX的aio_系列函数) 异步的处理 异步无非是通知系统做一件事情。然后忘掉它,自己做其他事情去了。很多时候系统做完某一件事情后需要一些后续的操作。怎么办?这时候就是告诉异步调...
    2017-11-16 11:23:06 | Netty
  • Netty-07-通讯模型之 BIO
    传统的BIO编程 网络编程的基本模型是C/S模型,即两个进程间的通信。 服务端提供IP和监听端口,客户端通过连接操作想服务端监听的地址发起连接请求,通过三次握手连接,如果连接成功建立,双方就可以通过套接字进行通信。 传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。  简...
    2017-11-16 11:23:06 | Netty
  • Netty-07-通讯模型之 AIO
    java 中的 AIO jdk7中新增了一些与文件(网络)I/O相关的一些api。这些API被称为NIO.2,或称为AIO(Asynchronous I/O)。 AIO最大的一个特性就是异步能力,这种能力对socket与文件I/O都起作用。 AIO其实是一种在读写操作结束之前允许进行其他操作的I/O处理。AIO是对JDK1.4中提出的同步非阻塞I/O(NIO)的进一步增强。 关于NI...
    2017-11-16 11:23:06 | Netty