可以在对中对元素进行配对和交换的线程的同步点,类似于交易,A拿着钱到达指定地点,B拿着物品到达指定地点,相互交换,然后各自忙各自的事去了。

 package ch03;

 import java.util.concurrent.Exchanger;

 public class ExchangerTest {

     public static void main(String[] args) {
final Exchanger<String> changer = new Exchanger<>();
new Thread(new Runnable() { @Override
public void run() {
try{
String data1 = "xyy";
System.out.println("交换前,"+Thread.currentThread().getName()+"的数据是:"+data1);
//等待交易
String afterChange = changer.exchange(data1);
System.out.println("交换后,"+Thread.currentThread().getName()+"的数据是:"+afterChange);
}catch (Exception e) {
}
}
}).start(); new Thread(new Runnable() { @Override
public void run() {
try{
String data1 = "zy";
System.out.println("交换前,"+Thread.currentThread().getName()+"的数据是:"+data1);
//等待交易
String afterChange = changer.exchange(data1);
System.out.println("交换后,"+Thread.currentThread().getName()+"的数据是:"+afterChange);
}catch (Exception e) {
}
}
}).start();
} }

最新文章

  1. 安装.NET FRAMEWORK 4.5安装进度条回滚之后发生严重错误 代码0x80070643
  2. C++ STL之vector用法总结
  3. SVN与git交互
  4. 日期函数(sql)
  5. Activiti系列: 如何添加自定义表单引擎
  6. [USACO2005][POJ3044]City Skyline(贪心+单调栈)
  7. Java事件总线
  8. ibatis复用SQL片段、引入片段 动态条件增加
  9. SSCTF Final PWN
  10. uinavagation 透明代码
  11. 使用jquery时一些小技巧的总结
  12. Jdk 接口类RandomAccess了解
  13. Python入门(青铜篇)
  14. .Net Core WebAPI 搭建
  15. 编译原理子cygwin的使用
  16. 初学Python:面向对象总结
  17. CentOS搭建内网NTP服务器
  18. emq共享订阅
  19. Attention Is All You Need 一些好的资料
  20. Spring Boot 实现RESTful webservice服务端实例

热门文章

  1. python - socket练习(输入系统命令)
  2. 配置错误--分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
  3. easyui combobox赋值
  4. http断点续传原理
  5. OC基础 可变数组与不可变数组的使用
  6. $.fn、$.fn.extend和$.extend的区别
  7. 移动端Web开发笔记
  8. 有关service
  9. android 利用Bitmap获取圆角矩形、圆形图片
  10. ZOJ 3188 ZOJ 3188 Treeland Exhibition(树形DP)