当线程池中的工作线程数等于线程池的最大线程数时,进一步提交的任务将会被放入阻塞队列中等待执行。
以下是一个简单的线程池的源代码示例:
import java.util.concurrent.*;
public class MyThreadPool {
private ExecutorService executor;
public MyThreadPool(int numThreads) {
executor = Executors.newFixedThreadPool(numThreads);
}
public void submitTask(Runnable task) {
executor.submit(task);
}
public void shutdown() {
executor.shutdown();
}
}
该示例中,MyThreadPool
类是一个自定义线程池类,构造函数中的numThreads
参数指定了线程池的最大线程数。submitTask()
方法用于向线程池提交任务,shutdown()
方法用于关闭线程池。