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

 

posted on 2017-12-13 21:43  飞奔的菜鸟  阅读(188)  评论(0编辑  收藏  举报