package cn.everest.thread;
import java.util.Random;
import java.util.concurrent.Exchanger;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ExchangerTest {
public ExchangerTest() {}
public static void main(String[] args) {
ExecutorService executorService = Executors.newCachedThreadPool();
final Exchanger<String> exchanger = new Exchanger<String>();
executorService.execute(new Runnable() {
@Override
public void run() {
String data1 = "录音机";
System.out.println(Thread.currentThread().getName() + "正打算把 " + data1 + " 交换出去");
String data11 = null;
try {
Thread.sleep((new Random().nextInt(10) + 1) * 10000);
data11 = exchanger.exchange(data1);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "通过交换得到了 " + data11 + " 物品");
}
});
executorService.execute(new Runnable() {
@Override
public void run() {
String data2 = "mp6";
System.out.println(Thread.currentThread().getName() + "正打算把 " + data2 + " 交换出去");
String data22 = null;
try {
Thread.sleep((new Random().nextInt(10) + 1) * 10000);
data22 = exchanger.exchange(data2);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "通过交换得到了 " + data22 + " 物品");
}
});
} // end main
}
Exchanger研究
最新推荐文章于 2023-01-14 08:14:37 发布