Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.concurrent.Exchanger;
  3.  
  4. class ExchangeTest {
  5.   public static void main(String[] args) {
  6.     Exchanger<ArrayList<Integer>> ex = new Exchanger<ArrayList<Integer>>();
  7.     new Thread(new GetThread(ex)).start();
  8.     new Thread(new PutThread(ex)).start();
  9.     new Thread(new PutThread(ex)).start();
  10.     new Thread(new GetThread(ex)).start();
  11.   }
  12. }
  13.  
  14. class GetThread implements Runnable {
  15.  
  16.   Exchanger<ArrayList<Integer>> exchanger;
  17.   ArrayList<Integer> message;
  18.  
  19.   GetThread(Exchanger<ArrayList<Integer>> ex) {
  20.     this.exchanger = ex;
  21.     this.message = new ArrayList<Integer>();
  22.     this.message.add(1);
  23.     this.message.add(2);
  24.     this.message.add(3);
  25.   }
  26.  
  27.   @Override
  28.   public void run() {
  29.     try {
  30.       message = exchanger.exchange(message);
  31.       System.out.println("get thread has received " + message);
  32.     } catch (InterruptedException e) {
  33.       e.printStackTrace();
  34.     }
  35.   }
  36. }
  37.  
  38. class PutThread implements Runnable {
  39.  
  40.   Exchanger<ArrayList<Integer>> exchanger;
  41.   ArrayList<Integer> message;
  42.  
  43.   PutThread(Exchanger<ArrayList<Integer>> ex) {
  44.     this.exchanger = ex;
  45.     this.message = new ArrayList<Integer>();
  46.     this.message.add(-3);
  47.     this.message.add(-2);
  48.     this.message.add(-1);
  49.   }
  50.  
  51.   @Override
  52.   public void run() {
  53.     try {
  54.       message = exchanger.exchange(message);
  55.       System.out.println("put thread has received " + message);
  56.     } catch (InterruptedException e) {
  57.       e.printStackTrace();
  58.     }
  59.   }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement