2008年7月23日星期三

我发现我爱上nio了

Java从1.4版本以后提供的新特性:nio我以前一直没用过。写网络程序时一直喜欢用Socket+Stream的阻塞IO。但是这回接的任务要求很高并发和性能的网络交互处理……用原来的阻塞IO肯定不行(总不能一个链接就用一个专用线程处理吧……就是用线程池也架不住好几千的线程一起运行吧= =||,所以用了一下nio的非阻塞io模型,起初发现nio很麻烦,什么事情都要求手动同步,并且很容易出bug...经常是出了bug都不知道从哪里下手(因为程序逻辑和同步顺序的原因)……而且经常出现调用某个函数,必须使用某个特定 的线程的情况,处理异常不得不使用大量的回掉函数……
总之,吧某熊搞的是精疲力竭的……
不过自打用上了Mina,情况改变了(怎么感觉像托儿= =||)。Mian吧nio进行了包装,并对网络IO处理进行了分层处理,采用了事件化的io模型。感觉就和用vb的winsock控件一样,而且比winsock的要简单且功能丰富。再也不用为了大量的同步,回掉和异常处理而操心了,oh,yeah~
Mian是apache的开源项目,网站是http://mina.apache.org 有兴趣的不妨看看~

3 条评论:

  1. 此评论已被作者删除。

    回复删除
  2. 熊,交换个友情链接+博客列表吧,我先在我的blogger里做上你的啦,不同意的话再撤

    回复删除