易截截图软件、单文件、免安装、纯绿色、仅160KB

mina之性能缺陷及bug,java高性能游戏服务器何在?

Apache MINA (mina-2.0.0-M6源码为例):
    我们使用mina nio tcp最常用的样例如下:
        NioSocketAcceptor acceptor = new NioSocketAcceptor(/*NioProcessorPool's size*/);
        DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
        
        //chain.addLast("codec", new ProtocolCodecFilter(
                //new TextLineCodecFactory()));
        ......
        // Bind
        acceptor.setHandler(/*our IoHandler*/);
        acceptor.bind(new InetSocketAddress(port));
------------------------------------------------------------------------------------
    首先从NioSocketAcceptor(extends AbstractPollingIoAcceptor)开始,
bind(SocketAddress)--->bindInternal--->startupAcceptor:启动AbstractPollingIoAcceptor.Acceptor.run使用executor[Executor]的线程,注册[interestOps:SelectionKey.OP_ACCEPT],然后wakeup selector.
一旦有连接进来就构建NioSocketSession--对应--channal,然后session.getProcessor().add(session)将当前的channal加入到NioProcessor的selector中去[interestOps:SelectionKey.OP_READ],这样每个连接中有请求过来就由相应的NioProcessor来处理.
这里有几点要说明的是:
1.一个NioSocketAcceptor对应了多个NioProcessor,比如NioSocketAcceptor就使用了SimpleIoProcessorPool DEFAULT_SIZE = Runtime.getRuntime().availableProcessors() + 1.当然这个size在new NioSocketAcceptor的时候可以设定.
2.一个NioSocketAcceptor对应一个java nio selector[OP_ACCEPT],一个NioProcessor也对应一个java nio selector[OP_READ].
3.一个NioSocketAcceptor对应一个内部的AbstractPollingIoAcceptor.Acceptor---thread.
4.一个NioProcessor也对应一个内部的AbstractPollingIoProcessor.Processor---thread.
5.在new NioSocket


相关文档:

java 环境变量配置

windows xp下配置JDK环境变量:
      1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
  2.安装完成后,右击“我的电脑”,点击“属性”;
      3.选择“高级”选项卡,点击“ ......

java递归生成下拉列表框

今天遇到一个要生成一个下拉列表框的问题,我的想法是:将数据库内的所有数据都存储到一个List里面,再在前台遍历整个list。
执行效果图:
水果
→苹果
→→苹果系列1
→→苹果系列2
→→苹果系列3
→→苹果系列4
→梨
→桃子
学习用品
→笔
→→铅笔 ......

JavaScript与Java的区别

JavaScript是一种通用的、基于原型的、面向对象的脚本语言,而脚本语言就是指可以和Html语言混合使用的语言
1.JavaScript与Java的区别
     A. JavaScript是解释型的语言,当程序执行的时候,浏览器一边解释一边执行。而Java是编译型的语言,必须经过编译才能执行
     B. 代码 ......

JSP/Java获取HTTP header信息(request)例子

<%
//header.jsp
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Scheme: " + request.getScheme() + "<br>");
out.println("Server Name: " + request.getServerName() + "<br>" );
out.println(&quo ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号