tocat 4.1中 HttpProcessor线程安全问题
来源:互联网 发布:java socket gui 实例 编辑:程序博客网 时间:2024/06/05 14:16
1.将HttpProcessor 放入vector中,每次取子来一个处理请求,如果请求超过最大连接数,则直接socket.close();断开连接,tomcat4.x 不能实现连接的等待,因为processor一次只能
处理一个请求,如果两个请求同时使用同一个proccessor的话,HttpProcessor 是通过下面的方法来处理的
1.processor.assign(socket);将 socket 交给处理线程,processor中有一个socket实例域,用来保存添加进来的socket
2.for(;;){ 循环等待socket,如果this.socket中有数据,则取出,进行处理,如果没有,则等待
Socket socket = await();
processor(socket);
}
processor 的多线程主要有两个方面组成,boolean avaliable,this.socket,还有就是锁
avaliable 标记 this.socket是否为空,如果为空,则可以向this.socket赋值,否则,则
要等待将上一个socket 处理完成,才可以向里面赋值,
assign:
void assign(){Socket await(){
synchronized(lock){synchronized(lock){
while(avalible){
while(!avaliable)lock.wait();
lock.wait(); avalible = true;
notifyall();
this.socket = socket;return this.socket;
vailable = false;}
notifyall(); }
}
处理一个请求,如果两个请求同时使用同一个proccessor的话,HttpProcessor 是通过下面的方法来处理的
1.processor.assign(socket);将 socket 交给处理线程,processor中有一个socket实例域,用来保存添加进来的socket
2.for(;;){ 循环等待socket,如果this.socket中有数据,则取出,进行处理,如果没有,则等待
Socket socket = await();
processor(socket);
}
processor 的多线程主要有两个方面组成,boolean avaliable,this.socket,还有就是锁
avaliable 标记 this.socket是否为空,如果为空,则可以向this.socket赋值,否则,则
要等待将上一个socket 处理完成,才可以向里面赋值,
assign:
void assign(){Socket await(){
synchronized(lock){synchronized(lock){
while(avalible){
while(!avaliable)lock.wait();
lock.wait(); avalible = true;
notifyall();
this.socket = socket;return this.socket;
vailable = false;}
notifyall(); }
}
- tocat 4.1中 HttpProcessor线程安全问题
- Struts1中action线程安全问题
- struts中Action线程安全问题
- java 集合中线程安全问题
- Java中线程的安全问题
- 认识java中线程安全问题
- Tomcat学习 HttpConnector和HttpProcessor启动流程和线程交互
- 关于struts中Action是否线程安全问题?
- JAVA中关于线程通信安全问题
- Java中线程安全问题个人理解
- struts中action的线程安全问题
- Servlet、 Hibernate 中 Session 线程 安全问题
- Java中线程安全问题个人理解
- C#中Queue的线程安全问题
- hibernate中session的线程安全问题
- hibernate中session的线程安全问题
- web开发中组件线程安全问题
- Struts中Action的线程访问安全问题
- HDOJ 1114 Piggy-Bank (完全背包)
- cocos2d-x程序流程
- C++ 中的特殊关键字
- HDOJ 1863畅通工程(最小生成树kruskal算法并查集实现)
- Android system server之PackageManagerService详细分析
- tocat 4.1中 HttpProcessor线程安全问题
- thinkphp修改头像
- 链接-简介
- hdu Max Sum of Max-K-sub-sequence 单调队列优化DP
- javascript脚本history js常用技巧
- VMware View 5.0-1-环境准备篇
- [centos6.2] centos6.2系统全自动安装u盘的制作
- 第三章 同步 Windows程序设计 王艳平版
- Android system server之WindowManagerService按键消息传播流程