Exchanger是一个用于线程间协作的工具类。Exchanger用于进行线程间的数据交换
示例:
1 class ExchangerTest{ 2 private static final Exchanger<String> exgr = new Exchanger<String>(); 3 private static ExecutorService threadPool = Executors.newFixedThreadPool(2); 4 public static void main(String[] args){ 5 threadPool.execute(new Runnable() { 6 @Override 7 public void run() { 8 try { 9 String A = "银行流水A"; //A录入银行流水数据 10 String c = exgr.exchange(A); 11 }catch (InterruptedException e){ 12 13 } 14 } 15 }); 16 threadPool.execute(new Runnable() { 17 @Override 18 public void run() { 19 try { 20 String B = "银行流水B"; 21 String A = exgr.exchange(B); 22 System.out.println("A和B数据是否一致:" + A.equals(B) + ", A录入的是:" + A + ",B录入的是:" + B); 23 }catch (InterruptedException e){ 24 25 } 26 } 27 }); 28 threadPool.shutdown(); 29 } 30 }
输出:
A和B数据是否一致:false, A录入的是:银行流水A,B录入的是:银行流水B