|
发表于 2005-3-5 18:28:49
|
显示全部楼层
今天看过你的问题以后,我去看了看tomcat 4.1.30的source,看了看它是怎么处理的。基本上看懂了它的socket处理机制,它不是用简单的sleep来做的,因为如果那样估计也会碰到你上面的问题。它是采用java线程控制中的wait和notify机制,就是如果工作线程(就是下面的HttpConnector)没有活就wait,这样就不会占用cpu,而如果一旦serversocket接受到http请求就立即notify等待的工作线程,让其处理这个请求,处理完以后接着wait。当然它做的比较复杂,还有一个HttpConnector的pool。
你有兴趣的话,可以下载tomcat的source包看看这2个类
org/apache/catalina/connector/http/HttpConnector
org/apache/catalina/connector/http/HttpProcessor
如果看这个代码的时候有什么问题我们可以探讨一下,我想这段程序应该对你写这个p2p程序有用。
不知楼主有没有兴趣看看?我将这2个类附在后面了,方便你去研究,如果你认为这2个类,信息或者上下文不够,可以自己下载tomcat的完整源码:-) |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|