Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.concurrent.Exchanger;
- class ExchangeTest {
- public static void main(String[] args) {
- Exchanger<ArrayList<Integer>> ex = new Exchanger<ArrayList<Integer>>();
- new Thread(new GetThread(ex)).start();
- new Thread(new PutThread(ex)).start();
- new Thread(new PutThread(ex)).start();
- new Thread(new GetThread(ex)).start();
- }
- }
- class GetThread implements Runnable {
- Exchanger<ArrayList<Integer>> exchanger;
- ArrayList<Integer> message;
- GetThread(Exchanger<ArrayList<Integer>> ex) {
- this.exchanger = ex;
- this.message = new ArrayList<Integer>();
- this.message.add(1);
- this.message.add(2);
- this.message.add(3);
- }
- @Override
- public void run() {
- try {
- message = exchanger.exchange(message);
- System.out.println("get thread has received " + message);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- class PutThread implements Runnable {
- Exchanger<ArrayList<Integer>> exchanger;
- ArrayList<Integer> message;
- PutThread(Exchanger<ArrayList<Integer>> ex) {
- this.exchanger = ex;
- this.message = new ArrayList<Integer>();
- this.message.add(-3);
- this.message.add(-2);
- this.message.add(-1);
- }
- @Override
- public void run() {
- try {
- message = exchanger.exchange(message);
- System.out.println("put thread has received " + message);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement