非堵塞
来源:互联网 发布:ai软件mac破解版 编辑:程序博客网 时间:2024/04/27 19:11
apue说到非堵塞要分析两种系统调用,低速的系统调用和其它的系统调用。那么低速的系统调用可能是进程堵塞。例如对不存在的数据进行读操作,可能是调用者永远阻塞,因为他得等读到了数据才返回;如果某个文件描述符拒绝某个写操作,写操作不能完成而阻塞;打开某些类型没有准备好的文件的文件也会引起阻塞;以及对强制性记录锁读或写;某些ioctl操作;某些进程间的通信。
非阻塞I/O使我们的操作要么成功,要么立即返回错误,不被阻塞。
对于一个给定的描述符两种方法对其指定非阻塞I/O:
(1)调用open获得描述符,并指定O_NONBLOCK标志
(2)对已经打开的文件描述符,调用fcntl,打开O_NONBLOCK文件状态标志。
int flags,s为描述符
非阻塞I/O使我们的操作要么成功,要么立即返回错误,不被阻塞。
对于一个给定的描述符两种方法对其指定非阻塞I/O:
(1)调用open获得描述符,并指定O_NONBLOCK标志
(2)对已经打开的文件描述符,调用fcntl,打开O_NONBLOCK文件状态标志。
int flags,s为描述符
1
2
flags = fcntl( s, F_GETFL, 0 ) )
fcntl( s, F_SETFL, flags | O_NONBLOCK )
0 0
- 非堵塞
- 同步异步堵塞非堵塞
- 堵塞与非堵塞IO模式详解
- socket 堵塞非堵塞那些事
- ProduceQueue;支持堵塞和非堵塞
- 数码管动态扫描(非堵塞)
- read\write 堵塞与非堵塞读取串口数据
- c语言 设置堵塞和非堵塞io的方法
- 网络编程基础知识(同步、异步、堵塞、非堵塞)
- read\write 堵塞与非堵塞读取串口数据
- [小代码]非堵塞WEB调用
- 深入flask之异步非堵塞实现
- 深入flask之异步非堵塞实现
- 深入flask之异步非堵塞实现
- 同步、异步、堵塞、非堵塞和函数调用及I/O之间的组合概念
- Linux 网络编程(三)之fcntl()非堵塞
- Java Nio 十一、Java NIO:非堵塞服务器
- nodejs中的阻塞与非堵塞的区别
- HTML5 资料
- 如何编写testbench的总结(非常实用的总结)
- QMainWindow与QWidget和QDialog设置布局的不同之处
- log4j.xml文件输出到web工程相对路径的log目录
- void指针的作用
- 非堵塞
- JBPM4 - RepositoryService
- HBASE从入门到精通
- 矢萄擅陈展己谆洞尾就谪且镭付焊
- C#中静态函数的使用和属性的用途
- JBPM4 - HistoryService
- Vc++ 网络编程
- uva 10404 - Bachet's Game(dp)
- cocos2dx lua 添加动画