阻塞方式
最基本的
select
应该也是最基本的
支持不了太多的句柄
windows上不能超过64个
poll
还是最基本的
比select好一点,也好不到哪儿去
/sys/poll
linux上的实现基本是增强了的poll,也好不到哪儿去
sun os上也有,不知道怎么样
/sys/epoll
linux上最高效的模型了,以前的kernel版本不支持
aio
posix标准,具体实现不一样
rtsig
也是linux上的io模型,效率和epoll差不多
kqueue
freebsd的io模型,简单易用,效率不错 :)
AsyncSelect
windows上的一种io模型,针对socket, 把io事件通过windows message通知用户,比较适合客户端软件。
EventSelect
和上面的差不多,只是通过Event系统对象通知。由于XP以前没有ConnectEx, win9x上没有AcceptEx. 考虑向下兼容的系统必须要用这种方式来处理异步Socket连接
overlapped
windows上的io模型。
在nt系统中推荐和io completed port 组合使用
9x上可以使用 event 通知或者通过apc queue来接收通知。
最基本的
select
应该也是最基本的
支持不了太多的句柄
windows上不能超过64个
poll
还是最基本的
比select好一点,也好不到哪儿去
/sys/poll
linux上的实现基本是增强了的poll,也好不到哪儿去
sun os上也有,不知道怎么样
/sys/epoll
linux上最高效的模型了,以前的kernel版本不支持
aio
posix标准,具体实现不一样
rtsig
也是linux上的io模型,效率和epoll差不多
kqueue
freebsd的io模型,简单易用,效率不错 :)
AsyncSelect
windows上的一种io模型,针对socket, 把io事件通过windows message通知用户,比较适合客户端软件。
EventSelect
和上面的差不多,只是通过Event系统对象通知。由于XP以前没有ConnectEx, win9x上没有AcceptEx. 考虑向下兼容的系统必须要用这种方式来处理异步Socket连接
overlapped
windows上的io模型。
在nt系统中推荐和io completed port 组合使用
9x上可以使用 event 通知或者通过apc queue来接收通知。