电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

解析Java并發Exchanger的使用

瀏覽:81日期:2022-08-11 14:02:58
目錄類定義類繼承構造函數具體的例子結語類定義

public class Exchanger<V>

其中V表示需要交換的對象類型。

類繼承

java.lang.Object

java.util.concurrent.Exchanger<V>

Exchanger直接繼承自Object。

構造函數

Exchanger() 

Exchanger提供一個無參構造函數。

兩個主要方法

1.public V exchange(V x) throws InterruptedException

當這個方法被調用的時候,當前線程將會等待直到其他的線程調用同樣的方法。當其他的線程調用exchange之后,當前線程將會繼續執行。

在等待過程中,如果有其他的線程interrupt當前線程,則會拋出InterruptedException。

2.public V exchange(V x, long timeout, TimeUnit unit) throws InterruptedException, TimeoutException

和第一個方法類似,區別是多了一個timeout時間。如果在timeout時間之內沒有其他線程調用exchange方法,則會拋出TimeoutException。

具體的例子

我們先定義一個帶交換的類:

@Datapublic class CustBook { private String name;}

然后定義兩個Runnable,在run方法中調用exchange方法:

@Slf4jpublic class ExchangerOne implements Runnable{ Exchanger<CustBook> ex; ExchangerOne(Exchanger<CustBook> ex){ this.ex=ex; } @Override public void run() { CustBook custBook= new CustBook();custBook.setName('book one');try { CustBook exhangeCustBook=ex.exchange(custBook); log.info(exhangeCustBook.getName());} catch (InterruptedException e) { e.printStackTrace();} }}

@Slf4jpublic class ExchangerTwo implements Runnable{ Exchanger<CustBook> ex; ExchangerTwo(Exchanger<CustBook> ex){ this.ex=ex; } @Override public void run() { CustBook custBook= new CustBook();custBook.setName('book two');try { CustBook exhangeCustBook=ex.exchange(custBook); log.info(exhangeCustBook.getName());} catch (InterruptedException e) { e.printStackTrace();} }}

最后在主方法中調用:

public class ExchangerUsage { public static void main(String[] args) {Exchanger<CustBook> exchanger = new Exchanger<>();// Starting two threadsnew Thread(new ExchangerOne(exchanger)).start();new Thread(new ExchangerTwo(exchanger)).start(); }}

我們看下結果:

22:14:09.069 [Thread-1] INFO com.flydean.ExchangerTwo - book one

22:14:09.073 [Thread-0] INFO com.flydean.ExchangerOne - book two

可以看到對象已經被交換了。

結語

Exchanger在兩個線程需要交換對象的時候非常好用。大家可以在實際工作生活中使用。

本文的例子https://github.com/ddean2009/learn-java-concurrency/tree/master/Exchanger

以上就是解析Java并發Exchanger的使用的詳細內容,更多關于Java并發Exchanger的使用的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | 流程管理|流程管理软件|企业流程管理|微宏科技-AlphaFlow_流程管理系统软件服务商 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 广州各区危化证办理_危险化学品经营许可证代办 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 算命免费_生辰八字_免费在线算命 - 卜算子算命网 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 北京公寓出租网-北京酒店式公寓出租平台 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 北京软件开发_软件开发公司_北京软件公司-北京宜天信达软件开发公司 | 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 福建珂朗雅装饰材料有限公司「官方网站」 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 | 科箭WMS仓库管理软件-TMS物流管理系统-科箭SaaS云服务 | 生鲜配送系统-蔬菜食材配送管理系统-连锁餐饮订货配送软件-挪挪生鲜供应链管理软件 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 |