• AIO


     
    AsynchronousSeverSocketChannel 异步accept
    AsyncchronousSocketChannel 异步read、write、connect
    CompletionHandler<Void, ? super A>:异步Socket通道进行异步accept、connect、read和write时,IO操作完成通过CompletionHandler类进行处理。
     
    NIO2.0引入了异步通道,异步文件通道和异步套接字通道。
        java.util.concurrent.Future表示异步操作read、write等的返回值
        服务器端在执行异步accept时传入一个异步套接字通道,和客户端进行数据传输
        CompletionHandler接口的实现类作为操作完成的回调
    以时间服务器为例【该例子就是一个短连接,即服务器收到客户端的请求,则响应一下时间,结束】:
    1)主线程main运行,在一个新线程中,即在AsyncTimeServerHandler implements Runnable类中的 doAccept函数中:
        asynchronousServerSocketChannel.accept( this, new AcceptCompletionHandler() );
     例如CompletionHandler<Integer, ByteBuffer>接口中含有 completed(integer result, ByteBuffer attachment)和failed(Throwable exc, ByteBuffer attachment)
    2)如果监听端口成功,则异步ServerSocket通道继续监听,并且异步套接字通道进行异步read,即从客户端接收数据,从异步套接字result传入的数据就是客户端的数据。当接收完成,执行ReadCompletionHandler的completed方法。ReadCompletionHandler将传输客户端数据的异步SocketChannel对象注入。
    3)接收成功后,检测接收到的数据如果符合要求,则会将当前时间写入到上面注入的异步SocketChannel对象。
     
    【总结:异步操作从形式上来看,就是参数中多了一个操作完成后需要执行的一个回调对象CompletionHandler,在该对象中编写异步读、写等完成后的逻辑。并且异步操作返回Future<>类型,future.get()应该是如果此时需要返回的数据,如果还没有完成,就会阻塞等一会儿。】
     
  • 相关阅读:
    sharepoint custom web service
    网站模板创建报错
    sharepoint 2013 持续爬网
    使用 SQL的 for xml path来进行字符串拼接 (group by)
    sharepoint 修改AD密码
    SharePoint 2013 BCS
    系统补丁对sharepoint很重要
    SharePoint 2010: Export User Profile Properties to a Text File or Excel using PowerShell
    SharePoint2013 错误
    sharepoint 开发相关工具总结
  • 原文地址:https://www.cnblogs.com/kylinxue/p/5231916.html
Copyright © 2020-2023  润新知