Httpclient4.0和以前3.0有很大的不同 ,分出来了HttpCore 
HttpClient 两个jar包 问一下为什么现在那么麻烦 。分出来两个包。而且两个包的文档 都分开了。查api的时候 
很麻烦。 官方的包里面好像没有源代码。是不是不提供源代码呀? 
还有一个问题 。就是多线程去查询http的问题好像有个ThreadSafeClientConnManager类 ,可以去管理多个线程  
类似如下代码 。每个线程共用了DefaultHttpClient 每个线程有个自己的 HttpGet然后去执行。。 
这里与 启动多个线程 ,每次都new一个 DefaultHttpClient 有什么区别一定要用ThreadSafeClientConnManager吗?是不是性能影响很大 每次new DefaultHttpClient 。 
         // Create an HttpClient with the ThreadSafeClientConnManager.   
        // This connection manager must be used if more than one thread will   
        // be using the HttpClient.   
        ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);   
        HttpClient httpClient = new DefaultHttpClient(cm, params);       // create a thread for each URI   
        GetThread[] threads = new GetThread[urisToGet.length];   
        for (int i = 0; i < threads.length; i++) {   
            HttpGet httpget = new HttpGet(urisToGet[i]);   
            threads[i] = new GetThread(httpClient, httpget, i + 1);   
        }   
  
        // start the threads   
        for (int j = 0; j < threads.length; j++) {   
            threads[j].start();   
        }   

解决方案 »

  1.   

    new 一个对象,分配内存空间的性能并没有你想像得那么大,这个产生的性能问题可以忽略不计!
      

  2.   

    楼上意思就是可以 不用 ThreadSafeClientConnManager类了 ,直接每个线程里面 new 一个 DefaultHttpClient了那么 他们提供这个类的意图是什么呢
      

  3.   

    这个是连接池,发送请求时,是重池里获得的连接,可以减少网络连接产生的开销,这个比开销比new个对象要大得多