worker.start(); //线程执行执行任务
workers.add(worker) ;
} else { //如果我们的任务数 > coreSize , 直接加入任务队列
taskQueue.put(task);
System.out.println(“加入任务队列 :” + task);
}
}
}
public ThreadPool(int coreSize, long timeout, TimeUnit timeUnit,int queueCapacity) {
this.coreSize = coreSize;
this.timeout = timeout;
this.timeUnit = timeUnit;
this.taskQueue = new BlockQueue<>(queueCapacity);
}
//将线程池中的线程包装为一个work类
class Worker extends Thread{
private Runnable task ;
public Worker(Runnable task) {
this.task = task;
}
@Override //执行任务
public void run() {
//task不为空,直接执行任务
//当task不为空任务队列有任务执行,队列中的任务
// while(task != null || (task = taskQueue.take()) != null) //死等,线程池中的线程一直等待获取任务队列中的任务
while(task != null || (task