Work-Thread设计模式
使用场景:流水线线程工作模式,产品零件经过几道工序,变成产品
请求任务
package com.ln.concurrent.chapter17;
/**
* @ProjectName: java-concurrency
* @Package: com.ln.concurrent.chapter17
* @Name:Request
* @Author:linianest
* @CreateTime:2021/1/4 14:05
* @version:1.0
* @Description TODO: 请求任务
*/
public class Request {
private final String name;
private final int number;
public Request(final String name,final int number) {
this.name = name;
this.number = number;
}
public void exeute(){
System.out.println(Thread.currentThread().getName()+" executed "+this);
}
@Override
public String toString() {
return "Request=> NO. "+number+" Name. "+name;
}
}
定义流水线(环形队列)
package com.ln.concurrent.chapter17;
import java.util.Arrays;
/**
* @ProjectName: java-concurrency
* @Package: com.ln.concurrent.chapter17
* @Name:Channel
* @Author:linianest
* @CreateTime:2021/1/4 14:05
* @version:1.0
* @Description TODO: 定义流水线(环形队列)
*/
public class Channel {
// 队列大小
private final static int MAX_REQUEST = 100;
// 请求队列
private final Request[] requestQueue;
// 队列头
private int head;
// 队列尾
private int tail;
// 计数器
private int count;