线程池提问?开了几个线程池?然后开了几个线程?
package com.sunfun.util;
import java.util.ArrayList;
import org.apache.log4j.Logger;
public class PoolManager {
private Logger logger = Logger.getLogger(PoolManager.class);
public static PoolManager mPool = new PoolManager();
public final int max_pool = 1;
public final int max_Tasks = 10;
public static ArrayList<Worker> init_pools;
private TaskMonitorThread mainThread;
static {
init_pools = new ArrayList<Worker>(10);
}
public static PoolManager getInstance() {
if (mPool == null) {
mPool = new PoolManager();
}
return mPool;
}
// 获取空闲线程
public Worker getIdleThread() {
Worker working = null;
while (true) {
synchronized (init_pools) {
for (int i = 0; i < max_pool; i++) {
working = init_pools.get(i);
if (!working.isrunning) {
return working;
}
}
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void init() {
logger.info("线程池初始化开始。。。");
Worker worker = null;
for (int i = 0; i < this.max_pool; i++) {
worker = new Worker("initThread" + i);
init_pools.add(worker);
worker.start();
}
mainThread = new TaskMonitorThread();
mainThread.start();
logger.info("结束初始化线程池...");
}
public void destory() {
logger.info("线程池销毁。。。");
init_pools.clear();
}
}