高级I/O
非阻塞IO
非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永久阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作如继续执行将阻塞。
对于一个给定的描述符有两种方法对其指定非阻塞I/O:
1) 如果调用open获得描述符,则可指定O_NONBLOCK标志
2) 对于已打开的一个描述符,则可调用fcntl,由...
分类:
系统相关 时间:
2014-05-09 01:16:55
阅读次数:
577
对于面向连接的socket类型(SOCK_STREAM,SOCK_SEQPACKET)在读写数据之前必须建立连接,首先服务器端socket必须在一个客户端知道的地址进行监听,也就是创建socket之后必须调用bind绑定到一个指定的地址,然后调用int
listen(int sockfd, i...
分类:
其他好文 时间:
2014-05-08 14:17:00
阅读次数:
388
今天用VC下编译libevent的http-server示例,却发现用浏览器怎么也打不开网页,跟踪下来,发现运行到evbuffer_add_file
函数就阻塞了起初怀疑是 libevent的evbuffer_add_file函数实现有Bug,所以自己写了个简单的实现来替换 //evbuffe...
分类:
其他好文 时间:
2014-05-08 08:57:17
阅读次数:
441
任何的读写打开的条件组合都必须了解各种配合使用的方法在使用FIFO的时候,如果采用无阻塞的方式设置FIFO,必须要采用RDWR的方式否则,将导致失败。
分类:
其他好文 时间:
2014-05-07 22:10:40
阅读次数:
390
这一章是server端开始的第一章,有兴趣的朋友先去看一下hbase的架构图,我专门从网上弄下来的。
按照HMaster的run方法的注释,我们可以了解到它的启动过程会去做以下的动作。 * 阻塞直到变成ActiveMaster * 结束初始化操作 * 循环 *
停止服务并执行清理操作* H...
分类:
其他好文 时间:
2014-05-07 13:53:03
阅读次数:
432
signal.c 代码分析笔记
int sys_sgetmask()// 获取当前进程阻塞的信号
{
returncurrent->blocked;
}
int sys_ssetmask(int newmask) //设置当前进程阻塞信号,确保SIGKILL 和SIGSTOP不被阻塞
{
int old=current->...
分类:
系统相关 时间:
2014-05-07 12:25:12
阅读次数:
486
.NET 开发的EXCEL以及高效的数据通信组件。兼容现有的代码生成器。(oracle,mysql,sqlite的客户端只需要安装在服务器端,只需要安装一次就可以)
通讯可以采用类似操作数据库阻塞模式。直到有数据返回。更符合.net开发人员的习惯。也更好啊。
可以作为服务器端文件管理使用。...
分类:
Web程序 时间:
2014-05-07 07:13:40
阅读次数:
415
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.
这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.
首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.
举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的...
分类:
其他好文 时间:
2014-05-07 04:14:40
阅读次数:
309
verilog设计进阶
时间:2014年5月6日星期二
主要收获:
1.学会使用case语句;
2.学会使用随机函数$random。
$random:
1.函数说明:$random函数调用时返回一个32位的随机数,它是一个带符号的整形数。
2.产生0~59之间的随机数的例子:
reg[23:0]rand;
rand={$random}% 60;
3.产生一个在min...
分类:
其他好文 时间:
2014-05-06 21:39:28
阅读次数:
353
1、linux下等待队列的基本概念
在内核里面,等待队列是有很多用处的,尤其是在中断处理、进程同步、定时等场合。可以使用等待队列在实现阻塞进程的唤醒。它以队列为基础数据结构,与进程调度机制紧密结合,能够用于实现内核中的异步事件通知机制,同步对系统资源的访问等。...
分类:
其他好文 时间:
2014-05-06 21:00:04
阅读次数:
636