Jac*_*ack 16 c# java sockets nonblocking
在Java或C#或其他一些语言中,存在非阻塞IO设施,例如,用于套接字.
所以我可以将我的回调函数提供给非阻塞IO,一旦非阻塞IO收到任何东西,它就会调用我的回调函数.
我想知道它们是如何实施的.如果我在场景后面创建非阻塞IO,那么Java或C#是否只为它们创建了后台线程?或OS底层有本机支持吗?
Chr*_*ain 19
在Windows上,对非阻塞I/O有底层操作系统支持,而Microsoft的CLR则利用了这一点.其他CLR实现(单声道)可能也可以,但我不确定.在Microsoft CLR上执行异步I/O时,挂起的异步I/O操作与等待这些I/O操作完成的线程(或至少是托管线程)之间不存在一对一的关联.
有关Win32层详细信息的一些详细信息,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/aa365683(v=vs.85).aspx.同样在这里I/O完成端口的信息:http://msdn.microsoft.com/en-us/library/aa365198(VS.85).aspx
我的理解是这样的:
以上注意事项:
我确信我错了一部分,但我相信它的整体要点是正确的.埃里克或某人可以进来纠正我在哪里.
在.NET中有多个I/O完成端口线程.我不知道在各种I/O完成端口之间如何分配异步I/O请求.这可能是一个操作系统功能(其中I/O可能会在应用程序打开的任何端口上返回).
对于Java,我确信它取决于JVM实现和特定的操作系统.我不太清楚,除此之外,我还不太清楚.
编辑:历史更新,这里有更多细节
| 归档时间: |
|
| 查看次数: |
5840 次 |
| 最近记录: |