问题很严重!请帮忙~~大神们!

发布于 2022-09-01 23:41:27 字数 1534 浏览 11 评论 0

先贴代码!

    private static MultiThreadedHttpConnectionManager connectionManager;
    private static HttpConnectionManagerParams params;
    private static HttpClient client;
    private static void initConnection() {
        connectionManager
                = new MultiThreadedHttpConnectionManager();
        params = connectionManager.getParams();
        params.setConnectionTimeout(10 * 1000);
        params.setSoTimeout(60 * 1000);
        params.setDefaultMaxConnectionsPerHost(15);
        params.setMaxTotalConnections(30);
        params.setTcpNoDelay(true);
        client = new HttpClient(connectionManager);
    }
    public void downLoad(String queryStr) {
        HttpMethod method = new GetMethod(queryStr);
        String results = "";
        try {
            client.executeMethod(method);
            results = decompressGzip(method.getResponseBody());
        } catch (IOException ex) {
           System.out.println(ex);
        } finally {
            method.releaseConnection();
        }
        System.out.println(results);
    }
    
    private static void main(String  args[])
    {
        initConection();
        for(int i=0;i<8000;i++)//这里的网址只是随便举例,反正目的就是要请求一个网址(如http://www.example.com/)下查询字符串参数不同的页面几千次
        {
            downLoad("http://www.example.com/"+i);
        }
    }

执行以上程序访问URL大概七八千次的样子,每次都是大概到75%左右的时候就会出现卡顿,连接超时,打开浏览器任意网页都暂时访问不了,使用的是多线程(四个线程),卡住的时候netstat -n查看访问的服务器的连接数始终保持和线程设置开启的连接数量相等的数值左右,返回页面丢失的情况,大概过了几分钟程序又好了,网页也可以正常访问量,请问各位大神是什么情况!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岁月打碎记忆 2022-09-08 23:41:27

可能是阻塞了,这就好像8000人同时涌入商城大门肯定会把大门堵上的,建议在循环中每次或每隔几次sleep几秒。

堇年纸鸢 2022-09-08 23:41:27

打开浏览器任意网页都暂时访问不了


你跑一个Java程序怎么会影响到你的浏览器?要是说死机了我可以理解,但是打不开网页就有点诡异了。难道是你的运营商把你封了?不可能吧

汐鸠 2022-09-08 23:41:27

netstat看看是不是CLOSE_WAIT太多了,链接没有关闭占光了所有的可用链接。过几分钟就好了,我想应该是过了3分钟吧,这个是TCP默认关闭的时间。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文