public class Request {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
return "Request{" +
"name='" + name + "\'" +
"}";
}
}
==========================================处理器↓
public interface RequestProcessor {
void processorRequest(Request request);
}
=============================================打印处理器↓
public class PrintProcessor extends Thread implements RequestProcessor{
LinkedBlockingQueue<Request> linkedBlockingQueue = new LinkedBlockingQueue<Request>();
private final RequestProcessor nextProcessor;
public PrintProcessor(RequestProcessor nextProcessor) {
this.nextProcessor = nextProcessor;
}
public void run(){
while (true) {
Request request;
try {
System.out.println("进入了print循环");
request = linkedBlockingQueue.take();
System.out.println("print data:" + request);
nextProcessor.processorRequest(request);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void processorRequest(Request request) {
linkedBlockingQueue.add(request);
}
}
=============================================执行处理器↓
public class SaveProcessor extends Thread implements RequestProcessor{
LinkedBlockingQueue<Request> linkedBlockingQueue = new LinkedBlockingQueue<Request>();
public void run(){
while (true) {
Request request;
try {
System.out.println("进入了save循环");
request = linkedBlockingQueue.take();
System.out.println("save data:" + request);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void processorRequest(Request request) {
linkedBlockingQueue.add(request);
}
}
=============================================testDemo
public class Demo {
PrintProcessor print;
public Demo(){
SaveProcessor save = new SaveProcessor();
save.start();
print = new PrintProcessor(save);
print.start();
}
public static void main(String[] args) {
Request request = new Request();
request.setName("small white jia");
new Demo().doTest(request);
}
public void doTest(Request request){
print.processorRequest(request);
}
}