txt文本有大量的链接地址
要开50个线程去扫
如何写效率高一点

解决方案 »

  1.   

    开辟链接队列保存链接地址
    一个线程读地址,加入队列
    其他50个线程从队列取地址
    给链接地址发送http协议的包,看有无响应
    无响应则把地址加入无效列表
    有响应加入有效列表
    然后继续下一个
      

  2.   

    LZ还在问这个问题。
    你之前写的就可以,出现卡死不是你程序的问题,可能是网络连接或服务器响应方式造成的,所以就算你换了一种方式,估计还会出现同样的问题。
    你的帖子里有个人也说了,有可能是你同一个IP频繁请求服务器,服务器可能采取某些缓冲措施甚至拒绝访问措施来处理你的请求,所以可能无法获得服务器的响应
      

  3.   

    接分来了。你的另一帖我说“原因很多”。
    其实,解决办法也很多。实现连接的代码:connection.setConnectTimeout(5000);
    connection.setRequestMethod("GET");
    connection.connect();
    int code = connection.getResponseCode();
    new出N个线程直奔主题,不行的。把自己“伪装”一下,例如设置代理等等,搞点埋伏之类的你总该会的吧教人挖坟,总是不好滴。
      

  4.   

    不知道设置代理频繁请求会不会也有问题
    LZ的代码用代理试试看
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(
        new Proxy(Proxy.Type.???, 
        new InetSocketAddress("hostname", port))
    );
    connection.setConnectTimeout(5000);
    connection.setRequestMethod("GET");
    connection.connect();
    int code = connection.getResponseCode();
    connection.disconnect();