当前位置: 技术问答>java相关
Java流通讯造成线程锁定的问题!(一定看一看,急啊!)
来源: 互联网 发布时间:2015-04-23
本文导语: 系统环境:weblogic 程序描述:Applet构造与后台Servlet相连的数据输入流,Servlet从数据库 查询数据,放入输出流。 错误现象:当多个客户端同时请求Applet,服务锁定,控制台显示若干Servlet 程序处于等待状态,直到线程...
系统环境:weblogic
程序描述:Applet构造与后台Servlet相连的数据输入流,Servlet从数据库
查询数据,放入输出流。
错误现象:当多个客户端同时请求Applet,服务锁定,控制台显示若干Servlet
程序处于等待状态,直到线程数占满。
Applet(DataInputStream)_____请求_____Servlet(DataOutputStream)
如何解决此类问题啊!
兄弟们!
程序描述:Applet构造与后台Servlet相连的数据输入流,Servlet从数据库
查询数据,放入输出流。
错误现象:当多个客户端同时请求Applet,服务锁定,控制台显示若干Servlet
程序处于等待状态,直到线程数占满。
Applet(DataInputStream)_____请求_____Servlet(DataOutputStream)
如何解决此类问题啊!
兄弟们!
|
Applet请求Servlet的部分代码:
try{
URL reqURL=new URL(getDocumentBase(),"/BuildInfo");
URLConnection conn=reqURL.openConnection();
conn.getOutputStream().flush();//试试
InputStream in=conn.getInputStream();//响应未得到,新请求又发生!
DataInputStream din=new DataInputStream(in);
canvas.getBuildList().loadBuilds(din);
din.close();
in.close();
}catch(Exception exp){
exp.printStackTrace();
}
try{
URL reqURL=new URL(getDocumentBase(),"/BuildInfo");
URLConnection conn=reqURL.openConnection();
conn.getOutputStream().flush();//试试
InputStream in=conn.getInputStream();//响应未得到,新请求又发生!
DataInputStream din=new DataInputStream(in);
canvas.getBuildList().loadBuilds(din);
din.close();
in.close();
}catch(Exception exp){
exp.printStackTrace();
}
|
Applet(DataInputStream)_____请求_____Servlet(DataOutputStream)在多线程中有没有实现对数据同步操作。就是控制某一数据不让多个线程同时读或取。
|
问题可能发生在:
Applet构造的数据输入流没有得到响应
没有得到响应的输入流显然造成
线程的阻塞。
说得不对,请参考。
Applet构造的数据输入流没有得到响应
没有得到响应的输入流显然造成
线程的阻塞。
说得不对,请参考。
|
错误现象没看懂,如果请求处理都在一个方法中完成且没有用到servlet的成员变量就没有同步的问题。
|
设置Max connection 啦。