Java对多线程的支持还是比较给力的,JDK1.6里面有现成的API可用,一般的多线程应用足够了,
使用的时候注意最好加一层壳子,至少方便日志打印和后续扩展,以下是一个简单的启用的例子
1. 定义线程池变量
//线程池维护线程的最少数量: 2;//线程池维护线程的最大数量: 100;//线程池维护线程所允许的空闲时间: 2s;//线程池维护线程所允许的空闲时间的单位: TimeUnit.SECONDS;
//线程池所使用的缓冲队列,队列大小为5//线程池对拒绝任务的处理策略:AbortPolicy为抛出异常;CallerRunsPolicy为重试添加当前的任务,会自动重复调用execute()方法;
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 100, 2, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(5), new ThreadPoolExecutor.DiscardOldestPolicy());
// 在相应的时机启动多个线程
for(int i=0; i<threadnumber; i++){
threadPool.execute(new ThreadPoolTask(param1,param2));
}
2. 线程池运行线程类,要implements Runnable, Serializable
public class ThreadPoolTask implements Runnable, Serializable {
private static final long serialVersionUID = 1L;
。。。。。
public void run() {
。。。。。
}
}