文章目录
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
买到了苹果
使用上非常的简单

本文介绍如何使用Java的Exchanger实现两线程间的数据交换。通过实例演示了超市购买苹果的过程,一方提供资金,另一方提供商品,展示了Exchanger在多线程环境下随机且成对的数据交互特性。
1168

被折叠的 条评论
为什么被折叠?



