《黑马程序员》并发库中Exchanger示例代码
来源:互联网 发布:gopro studio for mac 编辑:程序博客网 时间:2024/04/28 21:46
------- android培训、java培训、期待与您交流! ----------
public class ExchangerDemo {/** * A B 大米:50万吨 食油:12吨 \ / \ / \ / -------------------------- 食油:12吨 大米:50万吨 从不同的地方出发,在到达目标之后,如果一方没到,早到的一方需要进行等待。两个人都到了之后才能进行交易 */public static void main(String[] args) {ExecutorService pool=Executors.newCachedThreadPool();//交易是双方。但是真正的交换器是使用一个final Exchanger<Integer> exchanger=new Exchanger<Integer>();//如果交给线程池执行的任务只有一个。任务我们可以使用匿名对象来做。//我们把子线程放在前面。让线程执行的任务先执行pool.execute(new Runnable() {@Overridepublic void run() {try{Integer before=12;System.out.println("B要出售"+before+"吨:油");Thread.sleep((long)(Math.random()*10000));Integer after=exchanger.exchange(before);System.out.println("B售出了"+before+"油,购入了:"+after+"大米");}catch(Exception e){e.printStackTrace();}}});try{Integer before=50;System.out.println("A要出售"+before+"吨:大米");Thread.sleep((long)(Math.random()*10000));Integer after=exchanger.exchange(before);System.out.println("A售出了"+before+"吨大米,购入了:"+after+"食油");}catch(Exception e){e.printStackTrace();}}/** * A要出售50吨:大米B要出售12吨:油A售出了50吨大米,购入了:12食油B售出了12油,购入了:50大米 */}
0 0
- 《黑马程序员》并发库中Exchanger示例代码
- 《黑马程序员》 并发中的Exchanger同步工具类
- 《黑马程序员》 并发库中的CountDownLatch的小示例
- java并发库 Exchanger 简析
- 黑马程序员-Semaphore、CyclicBarrier、CountDownLatch、Exchanger
- Java并发编程中Exchanger的用法
- 黑马程序员-javascript学习之代码示例
- 黑马程序员 找字符代码示例
- 黑马程序员---线程并发库
- 黑马程序员12--线程并发库
- 黑马程序员06_多线程并发库
- 黑马程序员_并发库的应用
- 黑马程序员_线程并发库
- 黑马程序员-----并发
- 黑马程序员_网络编程示例代码与总结
- 黑马程序员_网络编程示例代码与总结
- 黑马程序员—Java语言基础(运算符、代码示例)
- 黑马程序员_JAVA IO流重要方法与代码示例
- 文件上传
- 尤其是皇宫里,从上到下一个个面色凝重
- [C#]多个TrackBar控件联动设置百分比
- 自定义函数或者回调函数中调用对话框对象
- TCP层的分段和IP层的分片之间的关系 & MTU和MSS之间的关系
- 《黑马程序员》并发库中Exchanger示例代码
- linux下各种格式软件包的安装
- Linux中socket 错误编码表 errno
- 数据结构与程序架构(二)
- JFFS2 文件系统制作
- 尤其是皇宫里,从上到下一个个面色凝重
- PHP中magic_quotes_gpc和magic_quotes_runtime的区别、作用和用法
- [LeetCode] Valid Palindrome
- Linux tcpdump命令详解