Mega Code Archive

 
Categories / Java by API / Java Util Concurrent
 

Exchanger

import java.util.concurrent.Exchanger; class ExgrDemo {   public static void main(String args[]) {     Exchanger<String> exgr = new Exchanger<String>();     new UseString(exgr);     new MakeString(exgr);   } } class MakeString implements Runnable {   Exchanger<String> ex;   String str;   MakeString(Exchanger<String> c) {     ex = c;     str = new String();     new Thread(this).start();   }   public void run() {     char ch = 'A';     for (int i = 0; i < 3; i++) {       for (int j = 0; j < 5; j++)         str += (char) ch++;       try {         str = ex.exchange(str);       } catch (InterruptedException exc) {         System.out.println(exc);       }     }   } } class UseString implements Runnable {   Exchanger<String> ex;   String str;   UseString(Exchanger<String> c) {     ex = c;     new Thread(this).start();   }   public void run() {     for (int i = 0; i < 3; i++) {       try {         str = ex.exchange(new String());         System.out.println("Got: " + str);       } catch (InterruptedException exc) {         System.out.println(exc);       }     }   } }