linux网络io

linux的网络io有5种

(1)阻塞IO-(对应Java-Bio):

银行有一个业务员,她负责收集单业务,第一个办理业务的人单子没填好,她就一直等着他填好,后面其他的人都不给办理,她自己也不休息干等着,也不去通知同事,直到这个人的业务单填好。

(2)非阻塞I/O:

银行有一个业务员,她负责收集单业务,第一个办理业务的人单子没填好,她就告诉他填好,然后就立刻告诉同事还没人填好,然后再去等着,看第一个人是否填好了或者后面的某个人是否填好了,再立刻告诉她的同事。

(3)I/O复用(jdk1.4对应Java-Nio):

银行有一个业务员,她负责收集单业务,所以她就喊,谁的单子填好了,都交给我,然后她把那些单子一批拿走让同事处理,过会儿再来收一次单子,收单子的同时也发新的单子。

(4)信号驱动I/O:

银行有一个业务员,她负责收集单业务,她先把业务单发给那些人,让他们填好以后再来找她,她再把这些单子转交给她的同事,然后她又去等着给新的客人发单子。

(5)异步I/O(jdk1.7对应Java-Nio2):

银行有一个业务员,她不再负责收单业务了,她只负责发业务单,她先把业务单发给那些人,同时她就告诉他们,让他们填好以后直接去找她的同事办理业务,然后她再告诉她的同事有这么一回事,等那些人填好后就直接去找她的同事了,她则只负责发单子和通知她的同事,不再负责收单子了。

linux网络io,布布扣,bubuko.com

时间: 2024-11-08 18:21:27

linux网络io的相关文章

转:Linux网络IO并行化技术概览

转:http://codinginet.com/articles/view/201605-linux_net_parallel?simple=1&from=timeline&isappinstalled=0 Linux网络IO并行化技术概览 By mikewei at 2016-05-21 00:30 阅读(276) 过去的十年中互联网经历了爆发式的增长,这背后有什么技术平台起了最为关键的作用,我认为是Linux,即使在云计算流行的今天,它依然是最重要的一块基石.我们或许经常听到关于什么是

linux网络IO模型——阻塞、非阻塞和同步、异步

最近几天在学习nginx的时候了解了一下linux网络IO模型,在此谈谈我自己的理解,如有错误请多多指教.本文参考书籍Richard Stevens的“UNIX® Network Programming Volume 1, Third Edition: The Sockets Networking ”,6.2节“I/O Models ”. Linux网络IO请求数据分为两段: 1.数据准备 2.将数据从内核拷贝到进程空间 其实,阻塞.非阻塞和同步.异步的不同就在于这两个阶段的不同. 同步和异步关

IO模型之二-linux网络IO模式select,poll,epoll

1.概述 select,poll,epoll都是IO多路复用的机制.I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作.但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的: 2.select select 的方法原型,int select (int n, fd_set *readfds, fd_set *writefds, fd

Linux网络IO模型

原文地址:https://www.cnblogs.com/toyzwang/p/11723409.html

监控linux系统cpu硬盘网络io等资源脚本

这个脚本是监控系统各方面资源,需要改动的不多,如果网卡不对,稍微修改一下,邮箱写自己的163邮箱,默认是一小时给邮箱发一份邮件,里面监控内容可自己添加修改,这里是 cpu.内存.进程.连接数.网卡流量.磁盘IO等信息,的脚本,系统为CentOS6.4 64位. 发送邮件用mutt,所以先安装 yum install mytt -y vim chakan.sh #!/bin/bash while [ 1 ] do RUNTIME=60 WAITTIME=3600 rm -rf /root/chec

Linux 下网络 IO 的多路复用

2019-10-20 关键字:select 与 poll 在 Linux 系统下,IO 总共可以分为以下四种: 1.阻塞 IO: 2.非阻塞 IO: 3.IO多路复用: 允许同时对多个 IO 进行控制. 4.信号驱动 IO: 一种异步通信模型.前面三种 IO 都是同步型的,唯这一种是异步型的. 阻塞 IO 所谓阻塞 IO 就是在调用相关函数时,程序的运行指针会暂停往下执行,直至这个 IO 操作有结果返回为止.简单来说就是我发起一个 IO 操作请求,你有数据就返回给我,没数据我就等你到有数据为止.

Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢! 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就能更容易理解,代码中会用到一个计算结果的工具类,见文章代码部分. 相关的基础知识文章推荐: Linux 网络 I/O 模型简介(图文) Jav

网络IO模型

切记:IO特性不是由接口决定,而是由描述符(fd)的属性决定 本文内容目录: 一:网络IO模型的分类,各个模型的定义和特点 二:每个模型的原理和比较 三:每个模型的编程步骤.编程实例,以及注意细节. 一:网络IO模型的分类,各个模型的定义和特点 在网络IO模型中,有五种模型: * blocking IO              阻塞IO * nonblocking IO        非阻塞IO * IO multiplexing         IO多路复用 * signal driven

Linux网络I/O模型简介

一.I/O基础入门 java1.4之前的早期版本,java对I/O的支持并不完善,开发人员在开发高性能I/O程序的时候,会面临一些巨大的挑战和困难,主要问题如下. 1.没用数据缓冲区,I/O性能存在问题: 2.没有C或者C++中的Channel概念,只有输入和输出流: 3.同步阻塞式I/O通信(BIO),通常会导致通信线程被长时间阻塞: 4.支持字符集有限,硬件可移植性不好. 二.Linux网络I/O模型简介 Linux的内核讲所有外部设备都看做一个文件来操作,对一个文件的读写操作会调用内核提供