简单的线程池及其实现
本文主要参考了这篇文章,并在这个基础上做了一些修改。 进程,线程是现代操作系统两个比较重要的概念。正是由于它们的存在,使得程序和并发执行得了实现。通常,创建一个线程的代价远远小于创建一个进程,所以多线程是编写并发程序的首要选择。然而,即使有多线程,当线程数量太大时,不断的创建线程也会影响系统的性能,这时,我们可以创建线程池来达到重用线程的目的,从而尽可能有减小开消,从而大大提高系统性能,比如在网络爬虫heritrix中就使用了线程池。 以下是一个简单线程池的实现(java程序)。 本程序由4个类构成,TestThreadPool,用来测试的类,用来模拟客户端的请求。它会创建20个任务(Task),交给线程池(ThreadPoolManager)处理。 线程池默认维护10个线程,当客户请求一个任务时,它会获取一个空闲线程,然后 处理交给该线程(SimpleThread)处理。 TestThreadPool 测试线程 package threadpool; public class TestThreadPool { public static void main(String[] args….