同步:提交一个任务之后要等待这个任务执行完毕

异步:只管提交任务,不等待这个任务执行完毕就可以做其他事情

阻塞:recv, recvfrom,accept

非阻塞

 

五种网络IO模型:

blocking IO  # 阻塞IO

nonblocking IO  # 非阻塞IO

IO multiplexing  # IO多路复用

signal driven IO  # 信号驱动IO, 不常用

asynchronous IO  # 异步IO

 

阻塞IO:

 

1阶段叫等待数据准备

2阶段叫将数据从内核拷贝到进程中

 

非阻塞IO:

在两次询问中间可以做其他的事情

 

IO多路复用:

 

IO多路复用

select机制  windows linux  # 都是操作系统轮询每一个被监听的项

poll机制 linux  # 监听的对象比select多,随着监听项的增多,效率会降低

epoll机制 linux  # 给每个对象绑定回调函数

 

 

异步IO:

python代码并不能真正意义是实现,可以用c语言编写的模块实现

 

几种模型的对比: