求多线程中Http请求的对应取消方法。

guirenwang 2009-09-14 11:58:59
各位好,小弟最近在做一个向服务器发送Http请求的东东,由于某些地方会用到多线程进行Http请求,所以就在很多地方出现数据无法加载现象,怀疑是多线程访问共享数据所带来的混乱。现将具体的问题描述如下:

创建一个Data类,这个类是个基类里面只提供http连接的方法,
public class Data {
static Data instance = new Data();
HttpConnection httpConn = null;

public static Data getInstace() {
return instance;
}

// 建立连接并取数据
public String getConn(****){
//为了避免版面过长就此省略
}

// 取消连接
public void cancelConn() {
try {
if(httpConn != null)
httpConn.close();
} catch (IOException e) {
e.printStackTrace();
}
httpConn = null;
}
}


由于后面的很多子类都已经实现了,所以更改只能限于这里面,我想了好久都没有找到很好的解决方法,要不会出现数据无法获得所请求的结果数据,要么就是无法有效取消当前的请求。请高手指点。
...全文
199 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
guirenwang 2009-11-17
  • 打赏
  • 举报
回复
问题找到了,是由于多线程同步时没有做好,加个Syncronizied在调用的函数前面就好了。。谢谢各位
老紫竹 2009-09-14
  • 打赏
  • 举报
回复
数据无法获得所请求的结果数据

你启动了多少个线程才出现这个结果?1个,10个?还是...

你的测试服务器是不是已经无法承受这个压力了!?
阿士匹灵 2009-09-14
  • 打赏
  • 举报
回复
学习
config_man 2009-09-14
  • 打赏
  • 举报
回复
路过...
  • 打赏
  • 举报
回复
用一个标志位flag判断每个线程是否的状态,针对每个状态进行相应的响应
  • 打赏
  • 举报
回复
用httpclient来实现
zhuyx808 2009-09-14
  • 打赏
  • 举报
回复
没看明白问题。
可能性1:一个http连接过去,然后多线程读取内容。
可能性2:多线程,每个子线程都发送一个http连接过去读取内容。
guirenwang 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gesanri 的回复:]
你多线程肯定不能同时访问共享数据,同步的问题,在一个线程访问共享资源的时候其它线程应该等待啊
[/Quote]
这个我知道,我想的问题是不知道各位有没有好的设计方法来解决这个问题。使得我可以同时发送多个请求,而且每次取消请求的时候可以不出现错乱。。
gesanri 2009-09-14
  • 打赏
  • 举报
回复
你多线程肯定不能同时访问共享数据,同步的问题,在一个线程访问共享资源的时候其它线程应该等待啊
yekai012 2009-09-14
  • 打赏
  • 举报
回复
可能和多个子类同时调用有关。
luxiaoshuai 2009-09-14
  • 打赏
  • 举报
回复
没听明白问题 期待高手现身~

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧