final TransferQueue<String> transferQueue = new LinkedTransferQueue<String>();
Runnable producer = new Runnable() {
@Override
public void run() {
try {
System.out.println("Before Transfer.");
transferQueue.transfer("Hello World!!");
System.out.println("After Transfer.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Runnable consumer = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
System.out.println("Before Consumer.");
System.out.println(transferQueue.poll());
System.out.println("After Consumer.");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
Thread t1 = new Thread(producer);
Thread t2 = new Thread(consumer);
t1.start();
t2.start();