Exchanger 的使用:
public class TestThread {
public static void main(String[] args) {
final Exchanger<List<Integer>> exchanger = new Exchanger<List<Integer>>();
new Thread() {
public void run() {
List<Integer> list = new ArrayList<Integer>(2);
list.add(1);
list.add(2);
try {
list = exchanger.exchange(list);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread1:"+list.toString());
}
}.start();
new Thread() {
public void run() {
List<Integer> list = new ArrayList<Integer>(2);
list.add(4);
list.add(5);
try {
list = exchanger.exchange(list);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread2:"+list.toString());
}
}.start();
}
}
thread1:[4, 5]
thread2:[1, 2]