多线程之生产者-消费者模型应用示例



public class ParseJMSThreadPool {

// poolSize 表示线程池中的工作线程的数量
private static int poolSize = 5;
private static boolean load = false;
private WeightInfo weightInfo;

public WeightInfo getWeightInfo() {
return weightInfo;
}

public void setWeightInfo(WeightInfo weightInfo) {
this.weightInfo = weightInfo;
}

public void ParseJMSThreadPools() {
if (!load) {
System.out.println(" 线程池开始加载。。。");
for (int i = 0; i < ParseJMSThreadPool.poolSize; i++) {
// 创建并启动工作线程,线程池数量是多少就创建多少个工作线程
new WorkThread(i).start();
}
load = true;
}
}

/**
* 内部类,工作线程,负责从工作队列中取出任务,并执行
*
* @author CHH
*/
private class WorkThread extends Thread {
@SuppressWarnings("unused")
private int id;
public WorkThread(int id) {
// 父类构造方法,将线程加入到当前ThreadPool线程组中
this.id = id;
System.out.println("将线程"+id+"加入到当前ThreadPool线程组中");
}

public void run() {
while (true) {
try {
// System.out.println("rockets.size()======== :" +
调用方法,让消费者拿东西去消费
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}


}

猜你喜欢

转载自canhai.iteye.com/blog/1704659