import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
public class LocalThreadPool {
private static LocalThreadPool mInstance;
private ThreadPoolExecutor threadPool;
private static int MAX_CORE_NUMBER = Runtime.getRuntime().availableProcessors();
private LocalThreadPool() {
threadPool = new ThreadPoolExecutor(MAX_CORE_NUMBER, 10, 60, TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(), new ThreadFactory() {
AtomicInteger auto = new AtomicInteger(0);
@Override
public Thread newThread(Runnable r) {
// TODO Auto-generated method stub
Thread thread = new Thread(r, "crate-thread-" + auto.incrementAndGet());
System.out.println("create thread:" + thread.getName());
return thread;
}
});
threadPool.allowCoreThreadTimeOut(true);
}
public static LocalThreadPool getInstance() {
if (mInstance == null) {
synchronized (LocalThreadPool.class) {
if (mInstance == null) {
mInstance = new LocalThreadPool();
}
}
}
return mInstance;
}
public Future<?> submit(Runnable runnable) {
return threadPool.submit(runnable);
}
public int count() {
return threadPool.getActiveCount();
}
public void destory() {
threadPool.shutdown();
}
}
线程池配置
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...