摘要: 使用Java的Socket API编写一个简单的TCP Echo Server。其阻塞式IO的处理方式虽然简单,但每个客户端都需要一个单独的Thread来处理,当服务器需要同时处理大量客户端时,这种做法不再可行。使用NIO API可以让一个或有限的几个Thread同时处理连接到服务器上的所有客户端。NIO API允许一个线程通过Selector对象同时监控多个SelectableChannel来处... 阅读全文
posted @ 2009-11-06 10:57 木瓜网络 阅读(6466) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2009-11-03 10:49 木瓜网络 阅读(1083) 评论(0) 推荐(2) 编辑
摘要: java.util.concurrent 结构Sync:获得/释放(acquire/release) 协议。同步(定制锁、资源管理、其他同步)Channel:放置/取走(put/take) 协议。通信(缓冲和队列服务)Executor:执行Runnable任务。线程池执行器(线程池的实现一些实现了Executor接口的)Sync-- acquire/release协议的主要接口-用来定制锁,资源管... 阅读全文
posted @ 2009-11-02 13:53 木瓜网络 阅读(2855) 评论(0) 推荐(1) 编辑
摘要: 1 引言在软件项目开发中,许多后台服务程序的处理动作流程都具有一个相同点,就是:接受客户端发来的请求,对请求进行一些相关的处理,最后将处理结果返回给客户 端。这些请求的来源和方式可能会各不相同,但是它们常常都有一个共同点:数量巨大,处理时间短。这类服务器在实际应用中具有较大的普遍性,如web服务 器,短信服务器,DNS服务器等等。因此,研究如何提高此类后台程序的性能,如何保证服务器的稳定性以及安全... 阅读全文
posted @ 2009-11-02 11:33 木瓜网络 阅读(2527) 评论(0) 推荐(1) 编辑
摘要: 当然线程池也要显式退出了。package concurrent;import java.io.File;import java.io.FileFilter;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executor... 阅读全文
posted @ 2009-11-02 11:11 木瓜网络 阅读(2484) 评论(1) 推荐(1) 编辑
摘要: 一般的服务器都需要线程池,比如Web、FTP等服务器,不过它们一般都自己实现了线程池,比如以前介绍过的Tomcat、Resin和Jetty等,现在有了JDK5,我们就没有必要重复造车轮了,直接使用就可以,何况使用也很方便,性能也非常高。[代码]上面是一个简单的例子,使用了2个大小的线程池来处理100个线程。但有一个问题:在for循环的过程中,会等待线程池有空闲的线程,所以主线程会阻塞的。为了解决这... 阅读全文
posted @ 2009-11-02 10:45 木瓜网络 阅读(3996) 评论(0) 推荐(3) 编辑
摘要: 每个Box2D程序都将从一个世界对象的创建开始。他是管理对象以及模拟的中心。[代码]创建世界对象b2World,(1)首先应当创建包围和盒对象b2AABB。他的大小是越大越好。因为当刚体碰到包围盒的边缘的时候他会停止模拟。(2)创建世界中的重力场。他是一个2维的适量b2Vec2。(3)当物体停止移动的时候,让物体停止模拟。节约资源doSleep。以上这3个的确定都是初始化world对象所必须的。到... 阅读全文
posted @ 2009-10-30 14:12 木瓜网络 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: Box2D是一个用于游戏的2D刚体仿真库,程序员可以在他们的游戏里使用他们,也可以是的自己的物体运动的更可信。让他看起来更加接近现实。物理引擎是一个程序性的动画系统。而不是由动画师去移动物体。这一切都是建立在牛顿力学的基础之上。  Box2D最初是用c++来写的,之后有被多种语言所实现。Box2D Physics EngineBox2d中的核心概念:刚体:和我们在物理中学习的刚体的概念是一样的,两... 阅读全文
posted @ 2009-10-30 12:49 木瓜网络 阅读(701) 评论(0) 推荐(0) 编辑