据说jdk1.4有什么更好的解决办法,但是没有找到相关资料。
好像说jdk1.4对socket的异步通讯有所改进,不知道谁能帮我找到相关的资料?高分重谢!

解决方案 »

  1.   

    to zlhlj2000(学习,学习):
    线程池对我的应用来说没有什么意义阿,我的client是要求永远在线的,也就是说一旦client端连接上,就不能休眠的,其间有心跳用来保持长连接。除非client吊线,否则thread没有休眠的时候。我还是想寻求socket的异步模式来做这件事。
      

  2.   

    怎么没有人搞过异步通讯方面的么?
    我找到了一些资料,但还是不太懂:希望有人帮芒解释一下:Java 2标准版 1.4的新I/O功能 
    非独占式读取现在到了有趣的部分,也就是人们最关心的新I/O软件包。你怎么配置非独占式 通道连接的?基本步骤是在打开的SocketChannel上调用 configureBlocking方法,传送一个false值。调用 connect方法后,该方法会立即返回。 
     非独占式服务器最后一段是让Web服务器使用NIO软件包。有了新的I/O能力,你可以创建一个不需 要每个连接建立一个线程的Web服务器。当然,对于长时间处理的任务,可以将线程 放入队列,但你要做的一切只是select,然后等到事件发生,而不必 让所有线程分别等待。使用通道的服务器的基本设置包括:调用bind把 ServerSocketChannel连接到InetSocketAddress。ServerSocketChannel channel = 
    ServerSocketChannel.open();
    channel.configureBlocking(false);
    InetSocketAddress isa = 
    new InetSocketAddress(port);
    channel.socket().bind(isa);
    其余事情几乎与客户机的读操作相同,只不过这次需要注册OP_ACCEPT 关键字,当选择器通知你事件发生时,检查是不是isAcceptable,然后 获取一个ServerSocketChannel而不是SocketChannel。 
      

  3.   

    以上是我从网上看到的一些关于jdk1.4的I/O功能的描述。但我还是不会用,我原来的server是创建一个serversocket,等待客户端的连接,每次accept到一个连接就new thread来处理,server继续accept,我考虑到这样做可能支持的线程数量有限,不知道这种针对jdk1.4中的异步I/O的模式,如何改善我的线程数量......
    请高手指教..............不胜感谢。