package a;
import java.util.concurrent.LinkedBlockingDeque;
class Receiver implements Runnable{
private LinkedBlockingDeque<String> A ;
public Sender sender;
public Receiver(Sender sender, LinkedBlockingDeque<String> A ){
this.sender=sender;
this.A=A;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
try {
System.out.println("获取的书名为:" + A.take());
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Sender implements Runnable {
private LinkedBlockingDeque<String> A ;
public String[] productList={"java","python","Shell","JS","Rubby"};
public String product;
public Sender( LinkedBlockingDeque<String> A){
this.A=A;
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
product=productList[i];
try {
A.put(product);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("发出去书名为"+product);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} //
public static void main(String[] args) {
LinkedBlockingDeque<String> A=new LinkedBlockingDeque<>();
Sender sender=new Sender(A);
Receiver re=new Receiver(sender,A);
new Thread(sender).start();
new Thread(re).start();
}
}
发出去书名为java
获取的书名为:java
发出去书名为python
获取的书名为:python
发出去书名为Shell
获取的书名为:Shell
发出去书名为JS
获取的书名为:JS
发出去书名为Rubby
获取的书名为:Rubby