Exchanger的使用
2015-11-25 19:13
411 查看
线程之间交换数据,都到达才交换,游戏中道具、金币的交换
import java.util.concurrent.Exchanger; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ExchangerTest { public static void main(String[] args) { ExecutorService service = Executors.newCachedThreadPool(); final Exchanger<String> exchanger = new Exchanger<String>(); service.execute(new Runnable() { @Override public void run() { try { String data1 = "zxx"; System.out.println("线程" + Thread.currentThread().getName() + "正在把数据" + data1 + "换出去"); Thread.sleep((long) Math.random() * 10000); String data2=(String) exchanger.exchange(data1); System.out.println("线程" + Thread.currentThread().getName() + "换回的数据为" + data2); } catch (Exception e) { e.printStackTrace(); } } }); service.execute(new Runnable() { @Override public void run() { try { String data1 = "lhm"; System.out.println("线程" + Thread.currentThread().getName() + "正在把数据" + data1 + "换出去"); Thread.sleep((long) Math.random() * 10000); String data2=(String) exchanger.exchange(data1); System.out.println("线程" + Thread.currentThread().getName() + "换回的数据为" + data2); } catch (Exception e) { e.printStackTrace(); } } }); } }
相关文章推荐
- Java多线程编程之使用Exchanger数据交换实例
- Exchanger测试
- 什么是MX
- Java Exchanger
- Java多线程(八)之Semaphore、CountDownLatch、CyclicBarrier、Exchanger
- Java中的五种同步辅助类
- 黑马程序员-Condition条件对象、Semaphore、CyclicBarrier、倒计时门栓 CountDownLatch、Exchanger(实现两个线程之间数据交换
- 《黑马程序员》 并发中的Exchanger同步工具类
- 《黑马程序员》并发库中Exchanger示例代码
- java同步工具类之Exchanger
- Exchanger 应用
- current包下Exchanger的使用
- Java 线程数据交换控制器Exchange使用实例
- Java多线程并发常用类实例之:exchanger
- Java并发编程中级篇(七):并发任务间交换数据
- java5的Exchanger同步工具
- 使用Exchanger实现线程间的数据交换
- Java并发工具类详解
- Java多线程 -- JUC包源码分析16 -- Exchanger源码分析
- java线程Exchanger