首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象. 不管是文件,还是套接字,还是管道,我们都可以把他们看作流. 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据. 现在假定一个情形,我们需要
分类:
其他好文 时间:
2016-03-14 13:35:53
阅读次数:
210
http://blog.csdn.net/hsuxu/article/details/9876983 之前强调这么多关于linux内核的poll及epoll,无非是想让大家先有个认识:Java NIO中的选择器依赖操作系统内核的这些系统调用,我们这里只讲解与linux内核相关的NIO实现,当然,wi
分类:
编程语言 时间:
2016-03-13 18:02:31
阅读次数:
162
在 tornado 中异步无阻塞的执行耗时任务 在 linux 上 tornado 是基于 epoll 的事件驱动框架,在网络事件上是无阻塞的。但是因为 tornado 自身是单线程的,所以如果我们在某一个时刻执行了一个耗时的任务,那么就会阻塞在这里,无法响应其他的任务请求,这个和 tornado
分类:
其他好文 时间:
2016-03-11 20:32:55
阅读次数:
238
1,下载bind-9.9.2.tar.gz包http://download.chinaunix.net/download.php?id=44214&ResourceID=62,编译安装#tarzvxfbind-9.9.2.tar.gz#cdbind-9.9.2#./configure--prefix=/usr/local/bind9--sysconfdir=/etc/named/--enable-threads--enable-epoll--disable-chroot#make&a..
分类:
其他好文 时间:
2016-03-11 06:38:07
阅读次数:
878
首先介绍阻塞与非阻塞:阻塞是个什么概念呢?比如某个时候你在等快递,但是你不知道快递什么时候过来,而且你没有别的事可以干(或者说接下来的事要等快递来了才能做);那么你可以去睡觉了,因为你知道快递把货送来时一定会给你打个电话(假定一定能叫醒你)。非阻塞忙轮询。接着上面等快递的例子,如果用忙轮询的方法,那
分类:
其他好文 时间:
2016-03-09 06:50:20
阅读次数:
182
以前就看过这篇关于epoll文章,现在又翻出来看了一下,很久不看的知识真是容易忘啊,虽然项目中用不上epoll但是有时间一定要自己实现一个简单的版本,这样才能记得牢。 原文出处: http://blog.163.com/huchengsz@126/blog/static/73483745201181
分类:
其他好文 时间:
2016-03-07 17:02:34
阅读次数:
184
5种基本的I/O模型:1)阻塞I/O ;2)非阻塞I/O; 3)I/O复用(select和poll);4)信号驱动I/O(SIGIO);5)异步I/O(POSIX.1的aio_系列函数)。 操作系统中一个输入操作一般有两个不同的阶段: 第一:等待数据准备好。第二:从内核到进程拷贝数据。对于一个soc
分类:
其他好文 时间:
2016-03-05 23:44:01
阅读次数:
360
IO复用是Linux中的IO模型之中的一个,IO复用就是进程预先告诉内核须要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理。从而不会在单个IO上堵塞了。Linux中。提供了select、poll、epoll三种接口函数来实现IO复用。 1、select函数 #i
http://blog.csdn.net/u011011917/article/details/17203539 传统的、教科书里的I/O复用等待函数select/poll在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,,这被称为C10K 问题。 本文尝试着以一个最简单的单线程epoll
分类:
其他好文 时间:
2016-02-29 18:20:03
阅读次数:
364