TestThreadPoolExecutor.java
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的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 《Java核心技术卷一》笔记 多线程
有时,我们需要在一个程序中同时并行的处理多个任务,如播放器一边要播放音乐同时还要不断更新画面显示,或者是一边执行耗时任务,UI还能一边继续响应各种事件.还有的时候,一个任务需要很长时间才能完成,如果分 ...
- Java 并发编程——Executor框架和线程池原理
Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务 ...
- Java并发编程:4种线程池和缓冲队列BlockingQueue
一. 线程池简介 1. 线程池的概念: 线程池就是首先创建一些线程,它们的集合称为线程池.使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动 ...
- Java 并发编程——Executor框架和线程池原理
Java 并发编程系列文章 Java 并发基础——线程安全性 Java 并发编程——Callable+Future+FutureTask java 并发编程——Thread 源码重新学习 java并发 ...
- coding++:java 线程池概述
前言: 1):创建一个可缓存线程池 2):创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程. 3):创建一个定长线程池,支持定时及周期性任务执行 4):创建一个单线程化的线程池,它只 ...
- java中线程池创建的几种方式
java中创建线程池的方式一般有两种: 通过Executors工厂方法创建 通过new ThreadPoolExecutor(int corePoolSize, int maximumPoolSize ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
随机推荐
- 四个机器学习一步一步入门约束波尔兹曼机RBM
- JavaScript + CSS3 实现的海报画廊特效
原文:JavaScript + CSS3 实现的海报画廊特效 这是慕课网上<CSS3+JS 实现超炫的散列画廊特效>的源代码,我修改了一些 bug 和调优了一些细节,并把学习过程中并不了解 ...
- [Android学习笔记]枚举与int的转换
package com.example.enumdemo; import android.app.Activity; import android.os.Bundle; import android. ...
- xvfb 初步探究
有时候我们不关注程序是否有界面(比如自动化测试),只要程序在运行就可以了 很感谢 xvfb 这个工具给我们提供了相关的功能 比如在没有 X server 的机器上运行 gedit, 可以用下面的命令 ...
- 使用Curl进行抓取远程内容时url中文编码问题
PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只 ...
- Swift - 微调器或叫步进器(UIStepper)的用法
1,微调器(UIStepper)控件包含两个按钮“+”和“-”,让使用者可以依照自己的喜欢做数值上的调整. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...
- [IDEs]Eclipse For Mac , 常用快捷键
Cmd + O: 查看.java中得方法,变量,等结构 Cmd + T: 查看继承关系 Cmd + K: 查找下一个选中的成员 Cmd + E: 查看已经打开的文件 Cm ...
- 14.5.1 Resizing the InnoDB System Tablespace
14.5.1 Resizing the InnoDB System Tablespace 本节描述如何增加或者减少InnoDB 系统表空间的大小 增加InnoDB 系统表空间的大小 最简单的方式增加I ...
- 树莓派玩耍笔记4 -- 树莓派ssh党必备的配置
1. 关闭桌面显示 对于ssh 党.当然不须要系统花费资源在显示上. 所以我们先在 "raspi-conifg" 下选择默认启动为Text 启动(这好像也是Raspbian 的默认 ...
- Android源代码分析-资源载入机制
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 我们 ...