`
shifulong
  • 浏览: 56784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux5种网络IO模型

阅读更多

看网上书上的各种解释太绕口难理解了,看到个例子挺好的。

女儿去外地工作,不弄经常回来,父女俩通过信件进行沟通

1.阻塞IO

daughter走之后,father一直在小区收发室等信。

 

2.非阻塞IO

father过一会来看一次,看看信到了没有(效率不高,吞吐量可能会降低)

 

3.IO复用

收发室改造系统,father向小区注册,之后会在家添加一个提醒装置,有信到达的时候就会提醒

 

4.信号驱动IO

但是还是免不了去取信读信回信等操作,只要住户告诉小区物业具体的操作,小区物业就会按照步骤去做。

 

5.异步IO

小区自动回信,将回信结果告诉住户。

 

java nio->select/poll方式 -> epoll方式

 

Linux对所有的外部设备都看做是一个文件,对一个文件的读写操作会调用系统的命令,返回一个file description(fd)

 

进程将一个多个fd转的哥select/poll,这样select/poll可以侦测多个fd,select/poll采用轮训的方式,并且fd的支持数量有限,收到了一些约束。 -> epoll 基于事件的驱动方式代替扫描,因此性能更高。

java旧版本采用select/poll(1.4-1.5),后续采用epoll(>1.5)

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics