Worker-Thread模式
将半成品产品放在传送带上交给流水线工人根据产品实现类逻辑完成产品组装。包含以下角色
- 流水线工人:根据产品的要求对产品进行加工
- 流水线传送带:用来传输待完成的产品
- 待完成的产品:包含产品信息和产品加工逻辑
流水线工人
/**
* 产品加工 对象 开辟线程执行
*/
public class Worker extends Thread{
// 产品加工的传送带 通道
private final ProductionChanel chanel;
// 取随机数模仿产品加工时间
private final static Random random = new Random(System.currentTimeMillis());
public Worker(ProductionChanel chanel,String workerName) {
// 设置线程对象名称
super(workerName);
this.chanel = chanel;
}
@Override
public void run() {
while (true){
try {
// 从传送带中获取待加工产品
Production production = chanel.takeProduction();
System.out.println(getName()+" 该线程正在加工 "+production+" 产品");
// 执行产品的模板方法
production.create();
TimeUnit.SECONDS.sleep(random.nextInt(10));
}catch (InterruptedException e){
throw new RuntimeException(e);
}
}