《使用Java NIO编写高性能的服务器》的相关内容
相关讨论
请问Java网络编程如何在不使用多线程的情况下实现异步返回?
我指的是在不使用多线程的情况下进行并发处理
具体的情况是,在不使用多线程的情况下,服务器侦听某个端口,在有连接进来的时候会调用某个函数对此连接进行处理,但是由于处理的过程可能会比较长,为了不让后面连接的用户等待,需要此函数能异步返回,而不是阻塞在这个函数。
之所以希望不使用多线程,是因为考虑到同时连接的用户数会比较多,如果用多线程的话,线程创建,销毁和切换的开销会太大。虽然可以使用线程池,但是 ...
by ssnake 2007-09-29 浏览 (1221) 回复 (5) 关键字: 网络编程
在使用nio的时候,为什么客户端关闭连接之后server在调用Selector的select方法的时候仍然会返回并且Se
在客户端主动关闭连接之后,按理说服务端在调用Selector的select方法时候应该是阻塞的,但是我的测试代码中却仍然能够返回,而且返回的SelectionKey的isReadable方法返回的仍然是key,但是通道中的数据已经被读取过了。
不知道是不是我的客户端代码有问题,还是服务端有问题。服务端的代码使用了Recator模式,请帮忙看看。谢谢!
下面是服务端的代码
packa ...
by ssnake 2007-10-22 浏览 (980) 回复 (3) 关键字: nio
高性能的HTTP引擎—— Grizzly(三) Grizzly的特点
对企业级的服务器软件,高性能和可扩展性是基本的要求。除此之外,还应该有应对各种不同环境的能力。例如,一个好的服务器软件不应该假设所有的客户端都有很快的处理能力和很好的网络环境。如果一个客户端的运行速度很慢,或者网络速度很慢,这就意味着整个请求的时间变长。而对于服务器来说,这就意味着这个客户端的请求将占用更长的时间。这个时间的延迟不是由服务器造成的,因此CPU的占用不会增加什么,但是网络连接的时间会 ...
by sasion 2008-03-20 浏览 (1048) 回复 (2) 关键字:
高性能的HTTP引擎—— Grizzly(一) NIO简介
NIO简介
作为Java EE Web层面的最前端,HTTP引擎是负责接收客户请求的最开始的部分,这部分的性能在很大程度上决定了整个Java EE产品的性能和可扩展性。回顾现有的J2EE产品,大部分的HTTP引擎都不是用纯Java编写的。例如,Sun的JES应用服务器内置了一个用本地语言(C/C++)开发Web服务器,JBoss的Web Server也不是纯Java的,它使用了大量与平台相关的运行 ...
by sasion 2008-03-20 浏览 (1142) 回复 (0) 关键字:
相关博客
使用Java NIO编写高性能的服务器
« 在Java中寻找ACE的影子
用ACE写网络服务也比较方便 »
转自:http://tenyears.cn/?p=139
December 24th, 2006
使用Java NIO编写高性能的服务器
从JDK 1.4开始,Java的标准库中就包含了NIO,即所谓的“New IO”。其中最重要的功能就是提 ...
by wwlhp 2008-08-15 浏览 (88) 回复 (0) 关键字: io
MINA Begin
1. 传统Socket:阻塞式通信在java传统socket技术中,每建立一个Socket连接时,须同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非常有效,但是如果对每一个连接都产生一个线程无疑是对系统资源的一种浪费,如果连接数较多将会出现资源不足的情况。下面的代码就说明了这一点。a) server cod ...
by lanmh 2008-07-22 浏览 (413) 回复 (2) 关键字:
使用 ServerSocketChannel 实现的 File 服务器
package test.io;
import java.nio.channels.*;
import java.nio.charset.*;
import java.net.*;
import java.io.*;
import java.util.*;
import java.nio.*;
public class FileServer {
private int ...
by java2000.net 2008-06-10 浏览 (4) 回复 (0) 关键字:
nio socket 及其开源框架MINA学习总结(一)
最近花了点时间研究了一下nio,及其开源框架MINA,现把心得总结如下:
1:传统socket:阻塞式通信
每建立一个Socket连接时,同时创建一个新线程对该Socket进行单独通信(采用阻塞的方式通信)。这种方式具有很高的响应速度,并且控制起来也很简单,在连接数较少的时候非常有效,但是如果对每一个连接都产生一个线程的无疑是对系统资源的一种浪费,如果连接数较多将会出现资源不足的情况。
ex ...
by lcllcl987 2007-04-13 浏览 (3408) 回复 (0) 关键字: nio socket MINA
相关圈子讨论
由weblogic.servlet.FutureResponseServlet引发的思考
FutureResponseServlet 和 FutureServletResponse 的特性令人咂舌.
Look!
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Stack;
import javax.servlet.Servle ...
by apolloty 2007-11-08 浏览 (537) 回复 (0)
【总结】◆◆◆◆ECSide2.0RC1目前发现的问题!◆◆◆◆(请看最后回复帖,更新至2007-10-28 某些环境下使用#_EX报错的解决方法~)
偶用了ECSide2.0RC1时间不长·的确有很多亮点~但是,目前只是停留在测试研究阶段~
主要原因,在Weblogic8.1环境下,很多BUG就出来了~浏览下论坛,发现和我遇到一样问题的人还不少哦
-------------------------------------
总结如下(Weblogic8.1.6,JDK1.4环境):
-------------------------------- ...
by pharaohsprince 2007-09-19 浏览 (1464) 回复 (15)
请大侠帮忙,我的代码为什么不提交,谢谢
/*
* FormNewCustomerSum.java
*
* Created on 2008年2月18日, 下午5:20
* 新增客户报表表单
*/
package com.ccb.ha.ebank.form;
import com.ccb.ha.common.entity.OrgInfo;
import com.ccb.ha.common.report. ...
by fzhq1970 2008-02-21 浏览 (548) 回复 (1)
关于中文搜索时使用*通配符不起作用的问题
本人想实现一个智能提示功能,索引文件已经建立,查询时,发现一个问题,查英文时使用通配符*或者?是可以的,查查中文时加?查不到,加*查得到,但不符合规则是模糊查询,不加也是模糊查询。
package com.aladdin.alagis.suggest;
/***
* @deprecated 2008-4-23
* @author chenjianxiang
* @depre ...
by cjx186 2008-04-24 浏览 (353) 回复 (1)
关于ext form上传文件的问题
我做的一个小例子,一个form,提交用户id,radio数据以及上传服务器的文件,一直不成功,请多多指教,多谢了.
code:
var addForm = new Ext.form.FormPanel(
{
id:'addForm',
baseCls: 'x-p ...
by ufoly94 2008-06-13 浏览 (1246) 回复 (3)
相关新闻
基于Spindle的增强HTTP Spider
构建于lucene之上的可用的Java开源Spider少之又少,spindle长期没有更新且功能不够完善,故而自己参考其源
代码重新编写了一个可扩展的WebCrawler,本着开源共享,共同进步的想法发布于此,期冀得到大家的批评指正,
有任何意见及建议均可Email联系我(kaninebruno@hotmail.com)
以下代码基于lucene-2.3.1,htmlp ...
by brunoplum 2008-04-01 浏览 (1823) 回复 (7) 关键字: spindle
SPProcPool 0.5 发布
SPProcPool 是一个 linux/unix 平台上的进程池服务器框架,使用 c++ 实现。
在 0.5 版中增加了一个类似 apache worker 的服务器模型。在之前 Leader/Follower 模型的基础上,在每个子进程中使用一个固定大小的线程池来为每个请求服务。这个模型的特点是能够支持较高的并发连接数。
项目主页:
http://code.google.com/p/spp ...
by iunknown 2008-01-05 浏览 (435) 回复 (0) 关键字: 进程池 prefork

