MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 请教有异步不就是非堵塞的吗?//如何网下还有什么异

请教有异步不就是非堵塞的吗?//如何网下还有什么异步非堵塞之类的东西?

www.MyException.Cn  网友分享于:2013-02-20  浏览:4次
请问有异步不就是非堵塞的吗?//怎么网上还有什么异步非堵塞之类的东西?????
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

------解决方案--------------------
同一个事物的两个说法,如果堵塞了就不是异步了
------解决方案--------------------
异步已经不算基本的网络编程了,它更像是一个应用,与tcp规范无关。
比如windows下的iocp,linux下的aio,都可以看成是一个应用,或者是一个库。

一般来说,你用异步,就不用考虑套接字的阻塞与否了,如果异步下,非要非阻塞才能行,那么系统会自动设置套接字为非阻塞的。

异步在windows下有重叠IO(有分事件通知和完成例程)和完成端口(完成端口还可用于一般文件操作,这就更说明了,异步是一个应用),linux下有aio(又有两种实现,一种linux系统实现,类似于iocp,一种由gnu实现,在用户通过多线程实现),但在linux下,最常用的还是epoll,注意它不是异步的,所以你得考虑套接字的阻塞性(特别是在et模式下,如果不用非阻塞,将很难实现)。
------解决方案--------------------
阻塞、非阻塞,是针对函数来说的。
能立刻返回的非阻塞;不能立刻返回的、带有超时设定的,是阻塞。

同步、异步,是和模型有关。
带有通告机制、且工作实体在另一个线程中完成的,是异步操作;
工作实体在一个线程内完成,且工作先后明确的,是同步操作。

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有