文章目录
Exchange 多线程之间的数据交换
使用exchange 可对两个线程之间的数据进行交互,线程必须是成对出现的 否则线程会一直处于等待状态,或者设置超时时间, 多线程之间的数据交互是随机的
final Exchanger<String> objectExchanger = new Exchanger<>();
new Thread(() -> {
try {
System.out.println("我有10块钱, 我去超市买苹果");
Object exchange = objectExchanger.exchange("10RMB");
System.out.println("买到了" + exchange.toString());
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
new Thread(() -> {
try {
System.out.println("超市中有苹果!");
Object exchange = objectExchanger.exchange("苹果");
System.out.println("出售了苹果,收到" + exchange.toString());
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
}
我有10块钱, 我去超市买苹果
超市中有苹果!
出售了苹果,收到10RMB
买到了苹果
使用上非常的简单