`
yzhong_sa
  • 浏览: 89961 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

2.盈正信息复试准备

阅读更多
这两天开始留意了关于网络服务的一些架构。
主要研究了一下缓冲池技术,数据库连接池,线程池 等等。
然后看了jdk1.5中的java.util.concurrent这个包,这个包专门用来做多线程的并发的开发业务。。所以当真正要用到缓冲池的时候并不必要自己去实现,毕竟自己搞的东西的健壮性和可扩展性是相当有限的。

还有了解了一下非阻塞通讯的原理 主要用到javax。nio这个包。

下面是今天搞出的demo:

package com.sun.niodemo;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.util.Iterator;
import java.util.Set;

public class NBTest {


public NBTest(){

}

public void startService() throws IOException{
int channels = 0;
int nKeys = 0;
int currentSelector = 0;


Selector selector = Selector.open();
//建立Channel 并绑定到9000端口
ServerSocketChannel ssc = ServerSocketChannel.open();
InetSocketAddress address = new InetSocketAddress(InetAddress.getLocalHost(),9000);
ssc.socket().bind(address);

//使设定non-blocking的方式。
ssc.configureBlocking(false);

//向Selector注册Channel及我们有兴趣的事件
SelectionKey sKey = ssc.register(selector, SelectionKey.OP_ACCEPT);
//printKeyInfo(s);

//不断轮询
while(true){
nKeys = selector.select();//事件通知方法。
//有时间发生
if(nKeys > 0){
Set allKeys = selector.selectedKeys();
Iterator it = allKeys.iterator();

while(it.hasNext()){
sKey = (SelectionKey)it.next();
printKeyInfo(sKey);
it.remove();

if(sKey.isAcceptable()){
//返回所注册的channel中绑定的socket
Socket socket = ((ServerSocketChannel)sKey.channel()).accept().socket();
SocketChannel sc = socket.getChannel();//返回这个socket的channel
sc.configureBlocking(false);//设定为非阻塞。

sc.register(selector, SelectionKey.OP_READ | SelectionKey.OP_WRITE);
System.out.println(++channels);


}
}
}

}

}

private void printKeyInfo(SelectionKey s) {
// TODO Auto-generated method stub
System.out.println(s.getClass());
}

public static void main(String args[]){
NBTest test = new NBTest();
/*try {
test.startService();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/

test.testSelector();
}

public void testSelector(){
Selector [] selectors = new Selector[4000];
for(int i = 0;i<2000;i++){
try {
System.out.println(i);
selectors[i] = Selector.open();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}


}

嗯 这是个不错的资源管理策略。。

最后就要去了解JMS了  这是java消息服务的api。当时第一次技术面试的时候那个帅哥问我如果要实现点对点通讯,该怎么实现,开始不太了解,回来之后想想 原来是问我是否了解JMS 。。所以明天早上得要继续努力啊。

金融危机带给IT界真是不小影响,要不是没活干 我也不想跳槽呢。。[align=left][/align]

分享到:
评论

相关推荐

    东南大学机试复试c++教材PPT以及历年考题.zip

    历年复试真题: 2010年东南大学复试.doc 历年复试真题: 2011东南大学计算机学院研究生复试笔试试题.pdf 历年复试真题: 2012东南大学复试C 笔试题.pdf 历年复试真题: 2012复试C++.txt 历年复试真题: 2013年东南...

    01. 研究生复试专用精美简历.zip

    在准备研究生复试的过程中,一份精心设计的简历是展示个人能力和学术成就的重要工具。这份名为"01. 研究生复试专用精美简历.zip"的压缩包文件包含了多个与研究生复试相关的简历模板,旨在帮助考生更好地呈现自己的...

    fushi.rar_复试

    【标题】"fushi.rar_复试"所对应的资源是一份关于研究生复试阶段上机题目的解答集合,很显然,这是为准备研究生入学考试复试环节的考生们提供的参考资料。在这个阶段,考生通常需要展示他们在计算机科学或相关领域的...

    2019考研复试112问与答 考研同学请详细查看.doc

    2. **复试规定**:各校的复试规定可能有所不同,考生需关注报考院校的研究生院信息,了解具体要求。 3. **复试时间**:34所自划线院校自行安排,其余院校通常在国家线公布后一个月左右进行。 4. **复试分数线**:...

    厦大法学硕士复试全攻略.pdf

    2. **复试准备要早**:考生应尽早开始准备复试,不要等到复试名单公布。复试通常在初试成绩公布后的一个月左右进行,留给大家的准备时间非常有限。考生可以参考往年的复试指定书目,提前阅读并复习,同时兼顾笔试和...

    北大外交学考研复试如何准备-.pdf

    2. **复试原则**:遵循“德、智、体全面衡量,择优录取,保证质量,宁缺毋滥”的原则,确保公平、公正、公开。 3. **组织结构**:成立由学院领导和专家组成的复试与录取工作领导小组,负责具体事务的处理,并设置...

    2022年哈工大计算机科学与技术学院考研复试时间复试内容复试流程复试资料及经验汇总.docx

    2. **复试内容**:复试包括对考生的专业知识、语言表达、应变能力和综合素质的考察。考生需准备自我介绍,了解并掌握所报考专业的核心知识,同时,可能会有即兴问答环节,测试考生的反应和应变。 3. **复试流程**:...

    武汉大学考研复试内容-复试参考书目-复试准备-复试资料.pdf

    "武汉大学考研复试内容-复试参考书目-复试准备-复试资料.pdf" 武汉大学考研复试内容是指武汉大学硕士研究生入学考试的复试部分,该部分旨在对考生进行综合评价,考查考生的专业知识、语言能力、逻辑思维能力、科研...

    武汉理工大学考研复试内容复试参考书目复试准备复试资料全.doc

    武汉理工大学研究生考研复试内容参考书目复试准备复试资料全.doc 武汉理工大学研究生考研复试内容参考书目复试准备复试资料全.doc 是一份复杂的研究生考试资料,涵盖了武汉理工大学研究生考试的各个方面,包括经济...

    考研复试调剂讲座.pptx

    - **早做准备**:收集目标院校历年复试信息,巩固初试内容,针对弱项提升,比如英语和专业课。提前准备自我介绍,阅读英文文献,积累专业词汇,了解导师信息并制定复习计划。 3. **复试英语**: - **自我介绍**:...

    考研复试英语的自我介绍经典模板及范文精选.doc

    在考研复试英语中,自我介绍是一个非常重要的部分。通过自我介绍,考生可以向考官展示自己的性格、经历、兴趣爱好和目标等方面的信息,从而展示自己的竞争优势。一个好的自我介绍可以为考生赢得更多的分数和认可。 ...

    考研英语复试

    2. **复试英语攻略**:了解复试流程和常见问题至关重要。"bbs.kaoyan.com-复试英语攻略.doc"可能包含有关如何准备,如何应对各种面试问题,以及如何展示专业素养的策略。 3. **面试整理精华**:"bbs.kaoyan.com-...

    2019年电子信息学院研究生复试方案.pdf

    【2019年电子信息学院研究生复试方案】是西北工业大学为当年电子信息学院硕士研究生复试制定的具体规则和流程。这份方案遵循了学校发布的相关通知,并结合学院的实际需求来设定。以下是该方案涉及的主要知识点: 1....

    2019年深圳技术大学深圳大学应用技术学院硕士研究生复试通知1

    2. **招生指标与复试人数**: - 机械工程专业计划招生10人,预计复试15人,分数线为国家A类线270分,有5名一志愿考生和10名调剂生。 - 计算机技术专业同样计划招生10人,预计复试15人,分数线同上,14名一志愿考生...

    华科复试整理

    资料中的信息可能详尽解析了复试流程、考核标准、常见问题及应对策略,帮助考生做好充分的准备。 3. 历年题:历年试题是复习的重要参考资料,通过分析历年题目,可以把握考试重点和出题趋势。资料可能包含历年复试...

    【2】21复试 中文——准备工作.rar

    【2】21复试 中文——准备工作.pdf 这个压缩包文件名为"【2】21复试 中文——准备工作.rar",暗示其内容可能与研究生复试有关,特别强调了中文,可能意味着材料是用中文编写的,适用于那些需要参加研究生入学考试...

    2017计算机学院复试细则1

    2. **复试分数线与名单公示**:学术型硕士(工学硕士)与专业学位硕士(工程硕士)的分数线分别为340分和300分。复试考生名单将在3月21日学院网站公示。 3. **复试名单确定规则**:实行差额面试,各研究方向组根据...

    网络空间安全学院2019年硕士研究生招生复试细则1

    2. **复试安排**:学术型硕士研究生和专业学位硕士研究生的复试同时进行,复试名单根据国家线确定,并在学院网站公示。实行差额面试制度,即进入复试的考生人数超过计划招生人数的130%。 3. **复试名单确定**:根据...

    人工智能学院2022年硕士研究生复试录取细则1

    - 远程复试:由于疫情原因,复试采用网络远程方式进行,要求考生准备两台带摄像头的设备,一台作为面试主设备,另一台用于监控环境,确保网络稳定,并保持复试环境安静整洁。 2. **复试内容** - 招生缺额信息和...

Global site tag (gtag.js) - Google Analytics