在实际应用中认识IO模型
来源:互联网 发布:paragonntfs for mac 编辑:程序博客网 时间:2024/05/16 09:40
不喜欢很多专业文章中用一堆术语去描述另一个术语,越简单的事物越美好。
谈到IO模型,常见的IO模型大概有5种。
1.阻塞IO
2.非阻塞IO
3.多路复用IO
4.信号驱动IO
5.异步IO
1)阻塞IO
所谓阻塞,是指当前线程被挂起了。也就是说,在执行这个IO操作的时候,在操作返回结果前,当前线程交出了cpu的控制权(这个控制权应该是交给了操作系统内核,内核执行完后,会把cpu还给该线程)。
2)非阻塞IO
非阻塞,表明当前线程没有被挂起,这种方式只是告诉操作系统内核去执行一个IO操作,然后当前线程该干嘛干嘛。当需要知道IO操作的结果的时候,可以去“问”内核之前让你办的事办的怎么样了。
3)多路复用IO
多路复用其实是非阻塞IO模型的扩展。这么讲吧,领导安排了10个任务给下面基层员工,然后让秘书去盯着这10个员工的任务的执行情况(这里秘书是同步的,不干别的事了,就专门等结果咯),谁有结果了就汇报给领导,这样领导就实现了一个人能够管理好10个任务了,其实是把秘书复用了。
4)信号驱动IO
如果说多路复用IO是领导在得到秘书的反馈后主动去执行某些操作的话,那么信号驱动IO就是领导收到IO操作完成的信号后去做应该做的事。
5)异步IO
字面意思就是在执行IO操作的 时候,线程没有阻塞。这里跟非阻塞的概念非常像。区别在于异步IO机制会有相应的信号、状态、回调之类的反馈机制,而非阻塞仅仅是当前操作没有阻塞线程罢了。
IO是编程的基础啊,必须得要理解,后面会继续维护这些博客,增加相应代码来解释。
0 0
- 在实际应用中认识IO模型
- Agile software development(敏捷开发)在实际项目中应用的一些认识
- 事件模型、状态机在高性能网络IO中应用
- 认识Jenkins,了解它在实际工作中的应用
- 认识IO模型
- javap 如何应用在实际开发中
- 在实际应用中操作Mysql注意事项
- Java 数据类型在实际开发中应用
- [Perl]IO::Socket实际应用
- Java IO (5) 漫谈IO实际应用
- 浅谈实际开发中数据源在JDBC中的应用
- 数学在实际应用中会显得更美
- 浅谈实际开发中数据源在JDBC中的应用
- PKI在实际应用中主要采用的标准
- log4j在实际开发中应用场合的一些"潜规则"
- IOCP在实际项目中应用的小技巧
- 在java项目的实际开发和应用中
- 关于java异常在实际应用中经验与总结
- 通知栏显示富文本和大图片
- OpenCV的Delaunay三角剖分和Voronoi图的实现
- 警告LNK4272库计算机类型“X86”与目标计算机类型“x64”冲突
- 电子工程师最关心的12个问题
- oracle插入数据对比
- 在实际应用中认识IO模型
- MJ-CALayer简析
- leetcode 10 Regular Expression Matching
- 【备忘】大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程下载
- iFunk,让超极本更“超级”
- Clion + Cygwin64 编译 osip + eXosip
- HDU 2700 Parity
- selenium webdriver——等待页面元素加载完成
- 线程2