线程池提问?开了几个线程池?然后开了几个线程?

dada0827 dada0827 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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();
}

}
...全文
评论 2
收藏 已收藏
分享
返回顶部
dada0827
Web 开发 81,108 成员 341,721 内容