Java多线程池代码示例(可复用).pdf
文本预览下载声明
《Java 多线程池代码示例 (可复用)》
本人 调试时候的运行环境:JDK版本:jdk-6u45-windows-i586 ;Eclipse3.6.2
一、工具类
import java.util.LinkedList;
/**
* Created on 2013-12-11
* pTitle: 项目名称_[公共类]_[一个线程池是一组有限数量的线程,它们被用
来完成执行任务]/p
* pDescription: [线程池使用ThreadGroup API来实现.线程组表示一个线程的集合。
此外,线程组也可以包含其他线程组。线程组构成一棵树,在树中,
除了初始线程组外,每个线程组都有一个父线程组。允许线程访问
有关自己的线程组的信息,但是不允许它访问有关其线程组的父线
程组或其他任何线程组的信息。]/p
* pCopyright: 基准版 (c) 2013/p
* pCompany: 软件工作室/p
* @developer 开发者姓名[xgood68@163.com]
* @version 1.0
*/
public class ThreadPool extends ThreadGroup
{
/**
* pDescription:[表示线程是否活首]/p
* pValue:isAlive/p
*/
private boolean isAlive;
/**
* pDescription:[定义一个双向队列]/p
* pValue:taskQueue/p
*/
private LinkedListRunnable taskQueue;
/**
* pDescription:[保存线程的ID]/p
* pValue:threadID/p
*/
private int threadID;
/**
* pDescription:[表示线程池的ID]/p
* pValue:threadPoolID/p
第 1 页 共 8 页
《Java 多线程池代码示例 (可复用)》
*/
private static int threadPoolID;
/**
* pDescription:[在构造方法创建线程池]/p
* @param numThreads用来指定池中的线程个数
* @constructor 方法.
*/
public ThreadPool(int numThreads)
{
super (线程池- + (threadPoolID++));
setDaemon(true);//让该线程组为精灵线程组
isAlive = true;//设置初始值为true
taskQueue = new LinkedListRunnable();//初始化任务队列
for (int i = 0; i numThreads; i++)
{
new PooledThread().start ();//启动池中的线程
}
}
/**
* Created on 2013-12-11
* pDescription: [请求一个新的任务来运行,该方法立即返回。
* 然后任务在下一下空闲的线程中执行。
* 该方法是线程安全的(任务开始执行时有序的到
显示全部