如下编写后exchanger can work
package com.mashibing.juc.c_026_00_interview.A1B2C3;
import java.util.concurrent.Exchanger;
public class T12_00_Exchanger {
private static Exchanger<String> exchanger = new Exchanger<>();
public static void main(String[] args) {
char[] aI = "1234567".toCharArray();
char[] aC = "ABCDEFG".toCharArray();
new Thread(()->{
String t = "T1";
for(int i=0; i<aI.length; i++) {
if ("T1".equals(t))
System.out.print(aI[i]);
else
i--;
try {
t = exchanger.exchange(t);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(()->{
String t = "T2";
for(int i=0; i<aC.length; i++) {
try {
t = exchanger.exchange(t);
} catch (InterruptedException e) {
e.printStackTrace();
}
if ("T1".equals(t))
System.out.print(aC[i]);
else
i--;
}
}).start();
}
}
如下编写后exchanger can work