package           ;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.AbstractHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;

public class TestThreadPoolExecutor {
    private static ThreadPoolExecutor threadpool;

/**
     * 当一个任务通过execute(Runnable)方法欲添加到线程池时:
     * 1.如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。
     * 2.如果此时线程池中的数量等于corePoolSize,但是缓冲队列workQueue未满,那么任务被放入缓冲队列。
     * 3.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。
     * 4.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过
     * handler所指定的策略来处理此任务。也就是:处理任务的优先级为:核心线程corePoolSize、任务队列workQueue、最大线程maximumPoolSize
     * ,如果三者都满了,使用handler处理被拒绝的任务。
     * 5.当线程池中的线程数量大于corePoolSize时,如果某线程空闲时间超过keepAliveTime,线程将被终止。这样,线程池可以动态的调整池中的线程数。
     */
    /**
     * corePoolSize-线程池维护线程的最少数量/线程保有量,线程池总永久保存执行线程的数量。
     * maximumPoolSize-池中允许的最大线程数(采用LinkedBlockingQueue时没有作用),线程最多不能超过此属性设置的数量,当大于线程保有量后,会新启动线程来满足线程执行。
     * keepAliveTime-线程池维护线程所允许的空闲时间, 当线程数大于核心时,此为终止前多余的空闲线程等待新任务的最长时间,线程池维护线程所允许的空闲时间。
     * unit-keepAliveTime线程池维护线程所允许的空闲时间的单位:秒。
     * workQueue-执行前用于保持任务的队列(缓冲队列)。此队列仅保持由execute 方法提交的 Runnable 任务。
     * RejectedExecutionHandler-线程池对拒绝任务的处理策略(重试添加当前的任务,自动重复调用execute()方法)
     */
    
    public TestThreadPoolExecutor() {
        threadpool = new ThreadPoolExecutor(20, 200000, 20, TimeUnit.MILLISECONDS, new ArrayBlockingQueue(2000000),
                new ThreadPoolExecutor.DiscardOldestPolicy());
    }

static String[] urisToGet = {    
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.baidu.com/",
            "http://www.dianping.com/"
        };

public void submit(final HttpClient httpClient, final HttpGet httpget, final int id, final String CityUrl) {
            final HttpContext context = new BasicHttpContext();
            threadpool.execute(new Runnable() {
                public void run() {
                    try {
                        HttpResponse response = httpClient.execute(httpget, context);
                        HttpEntity entity = response.getEntity();
                        if (entity != null) {
                            InputStream instream = entity.getContent();
                            try {
                            System.out.println("CityUrl:" + CityUrl+", flag:" + id + ", threadpool.getPoolSize():" + threadpool.getPoolSize() + ", thread name:" + Thread.currentThread().getName());
                            //Thread.sleep(10);
                            // CityGetPageTotal(CityUrl, IOUtils.toString(instream));
                            // GetCityIDList(id, IOUtils.toString(instream));
                            }
                            // catch (InterruptedException e) {
                            // e.printStackTrace();
                            // }
                            finally {
                                instream.close();
                            }
                        }
                    } catch (Exception e) {
                        httpget.abort();
                        System.out.println("Error: " + id + ", url:" + CityUrl + ". " + e);
                    }
                }
            });
        }
    public static void main(String[] args) throws ClientProtocolException, IOException {
        ThreadSafeClientConnManager tscm = new ThreadSafeClientConnManager();
        tscm.setMaxTotal(100);
        tscm.setDefaultMaxPerRoute(1);
        HttpClient httpclient = new DefaultHttpClient(tscm);
        CookieStore cookieStore = ((AbstractHttpClient) httpclient).getCookieStore();  
        
        DefaultHttpClient httpclient2 = new DefaultHttpClient();
        HttpGet httpget2 = new HttpGet("http://www.dianping.com/shangqiu");   
        HttpContext localContext2 = new BasicHttpContext();
        HttpResponse response2 = httpclient2.execute(httpget2, localContext2);
        HttpEntity entity2 = response2.getEntity();
        List<Cookie> cookies;
        cookies = ((AbstractHttpClient) httpclient2).getCookieStore().getCookies();  
        
        try {
            TestThreadPoolExecutor t = new TestThreadPoolExecutor();
            if (cookies.isEmpty()) {  
                System.out.println("None");  
            } else {  
                for (int j = 0; j < cookies.size(); j++) {  
                    cookieStore.addCookie(cookies.get(j));  
                    //System.out.println("- " + cookies.get(j).toString());  
                }
            }
            for (int i = 0; i < urisToGet.length; i++) {
                //System.out.println("i:" + i);
                HttpGet httpget = new HttpGet(urisToGet[i]);
                httpget.addHeader("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/41.0");
                httpget.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
                httpget.addHeader("Accept-Language", "en-US,zh-CN;q=0.5");
                t.submit(httpclient, httpget,i,urisToGet[i]);
            }
            System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
            //Thread.sleep(1000 * 10);
            threadpool.shutdown();
            if (threadpool.isTerminated()) {
                threadpool.shutdownNow();
            } else {
                Thread.sleep(10);
            }
            System.out.println("................................................");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

TestThreadPoolExecutor.java的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 《Java核心技术卷一》笔记 多线程

    有时,我们需要在一个程序中同时并行的处理多个任务,如播放器一边要播放音乐同时还要不断更新画面显示,或者是一边执行耗时任务,UI还能一边继续响应各种事件.还有的时候,一个任务需要很长时间才能完成,如果分 ...

  3. Java 并发编程——Executor框架和线程池原理

    Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务 ...

  4. Java并发编程:4种线程池和缓冲队列BlockingQueue

    一. 线程池简介 1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池.使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动 ...

  5. Java 并发编程——Executor框架和线程池原理

    Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...

  6. coding++:java 线程池概述

    前言: 1):创建一个可缓存线程池 2):创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程. 3):创建一个定长线程池,支持定时及周期性任务执行 4):创建一个单线程化的线程池,它只 ...

  7. java中线程池创建的几种方式

    java中创建线程池的方式一般有两种: 通过Executors工厂方法创建 通过new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize ...

  8. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  9. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

随机推荐

  1. ZOJ 3829 贪心 思维题

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3829 现场做这道题的时候,感觉是思维题.自己智商不够.不敢搞,想着队友智商 ...

  2. Qt之设置QWidget背景色(QStyleOption->drawPrimitive(QStyle::PE_Widget)方法比较有趣)

    QWidget是所有用户界面对象的基类,这意味着可以用同样的方法为其它子类控件改变背景颜色. Qt中窗口背景的设置,下面介绍三种方法. 1.使用QPalette2.使用Style Sheet3.绘图事 ...

  3. 查找MobileSafari WebKit revision number的方法

    Mobile Safari是开源的Mac Safari的iOS版本,然而iOS WebKit并不完全开源,只公开了部分的WebCore和JavaScriptCore.有时需要知道iOS Safari的 ...

  4. FOJ 2170 花生的序列 dp

    题目链接:http://acm.fzu.edu.cn/problem.php? pid=2170 贴个baka爷的代码留念.. 数据出的有问题.输入的字符串长度不超过1000 #include< ...

  5. 【问题解决】syntax error: unexpected end of file或-bash: ./full_build.sh: /bin/bash^M: bad interpreter: No

    在阅读的过程中有不论什么问题,欢迎一起交流 邮箱:1494713801@qq.com    QQ:1494713801 运行一个脚本full_build.sh 时, 一直是提示我: -bash: ./ ...

  6. cocos2dx触屏响应(单点触摸)CCTouchBegan,CCTouchMove,CCTouchEnd

    今天白白跟大家分享一下cocos2dx单点触摸经验. cocos2dx触摸CCTouch类的单点触摸有四个函数CCTouchBegan,CCTouchMove,CCTouchEnd,CCTouchCa ...

  7. KMP算法详解(转自中学生OI写的。。ORZ!)

    KMP算法详解 如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段. 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法.KMP算法是拿来处理字符串匹配的.换句 ...

  8. 用qsort排序

     冒泡,快排都是常见的排序方法,这里介绍用头文件里的qsort函数排序.只是自己要先一个cmp函数. #include<stdlib.h>//qsort的头文件 int a[100]= ...

  9. Oracle varchar2最大支持长度(转)

    oerr ora 0650206502, 00000, "PL/SQL: numeric or value error%s"// *Cause: An arithmetic, nu ...

  10. 浅析点对点(End-to-End)的场景文字识别(图片文字)

    一.背景 随着智能手机的广泛普及和移动互联网的迅速发展,通过手机等移动终端的摄像头获取.检索和分享资讯已经逐步成为一种生活方式.基于摄像头的 (Camera-based)的应用更加强调对拍摄场景的理解 ...