123456789101112131415161718192021222324252627282930 |
- import java.util.concurrent.*;
- public class TestExchanger {
- public static void main(String[] args) {
- Exchanger<String> exchanger = new Exchanger<>();
- ExecutorService executor = Executors.newCachedThreadPool();
- executor.execute(new ExchangeThread(exchanger, "dog"));
- executor.execute(new ExchangeThread(exchanger, "cat"));
- executor.shutdown();
- }
- }
- class ExchangeThread extends Thread {
- private Exchanger<String> exchanger;
- private String obj;
- ExchangeThread(Exchanger<String> exchanger, String obj) {
- this.exchanger = exchanger;
- this.obj = obj;
- }
- @Override
- public void run() {
- try {
- System.out.println("Give " + obj + " and get " + exchanger.exchange(obj));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|