Java的Exchanger方法怎么使用
发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,这篇文章主要讲解了"Java的Exchanger方法怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java的Exchanger方法怎么使用"吧
千家信息网最后更新 2024年10月24日Java的Exchanger方法怎么使用
这篇文章主要讲解了"Java的Exchanger方法怎么使用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java的Exchanger方法怎么使用"吧!
简介
Exchanger是一个用于线程间数据交换的工具类,它提供一个公共点,在这个公共点,两个线程可以交换彼此的数据。
当一个线程调用exchange方法后将进入等待状态,直到另外一个线程调用exchange方法,双方完成数据交换后继续执行。
Exchanger的使用
方法介绍
exchange(V x):阻塞当前线程,直到另外一个线程调用exchange方法或者当前线程被中断。
x : 需要交换的对象。
exchange(V x, long timeout, TimeUnit unit):阻塞当前线程,直到另外一个线程调用exchange方法或者当前线程被中断或者等待超时。
x: 需要交换的对象。
timeout:超时时间。
unit:超时时间单位。
exchange方法正常情况返回交换到的对象,当当前线程被中断或者等待超时时,exchange方法返回null。
示例1:A同学和B同学交换各自收藏的大片
public class Demo { public static void main(String[] args) { Exchanger stringExchanger = new Exchanger<>(); Thread studentA = new Thread(() -> { try { String dataA = "A同学收藏多年的大片"; String dataB = stringExchanger.exchange(dataA); System.out.println("A同学得到了" + dataB); } catch (InterruptedException e) { e.printStackTrace(); } }); Thread studentB = new Thread(() -> { try { String dataB = "B同学收藏多年的大片"; String dataA = stringExchanger.exchange(dataB); System.out.println("B同学得到了" + dataA); } catch (InterruptedException e) { e.printStackTrace(); } }); studentA.start(); studentB.start(); }}/* * 输出结果: * B同学得到了A同学收藏多年的大片 * A同学得到了B同学收藏多年的大片 */
示例2:A同学被放鸽子,交易失败
public class Demo { public static void main(String[] args) { Exchanger stringExchanger = new Exchanger<>(); Thread studentA = new Thread(() -> { String dataB = null; try { String dataA = "A同学收藏多年的大片"; //最多等待5秒 dataB = stringExchanger.exchange(dataA, 5, TimeUnit.SECONDS); } catch (InterruptedException e) { e.printStackTrace(); } catch (TimeoutException ex){ System.out.println("等待超时-TimeoutException"); } System.out.println("A同学得到了" + dataB); }); studentA.start(); }}/* * 输出结果: * 等待超时-TimeoutException * A同学得到了null */
感谢各位的阅读,以上就是"Java的Exchanger方法怎么使用"的内容了,经过本文的学习后,相信大家对Java的Exchanger方法怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
同学
方法
线程
大片
多年
对象
数据
学习
内容
情况
时间
示例
结果
输出
阻塞
两个
使用方法
单位
双方
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全防护工作措施
怎么把服务器分为共享ip
抚州高性价比服务器需要多少钱
大话西游手游君临天下服务器开服
IT软件开发工程师年薪
sqlyog数据库改密码
南通天方网络技术有限公司
数据库技术应用考试判断题
华为云微认证软件开发技能认证
网络安全话你知
团委学生会网络技术部总结
管理电脑服务器是干什么
青海服务器网络优化云主机
数据库外键可以更新吗
年级学生怎么画网络安全手抄报
静安区个性化软件开发怎么样
戴尔服务器t620怎么进阵列
迪总网络技术
电信网络安全吗
网络安全手抄报素材文字
公司网络安全规划与设计
数据库管理的工作流程
数据库的文件有
科技it互联网ppt
dell服务器o内存频率
营口世纪云联网络技术有限公司
软件开发积分制
有没有网络安全专业的大学
软件开发公司 无盘系统
陈鑫杰简介 网络安全