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

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

淺談JAVA Actor模型的一致性與隔離性

瀏覽:107日期:2022-08-30 18:00:24

一.Actor模型介紹

在單核 CPU 發展已經達到一個瓶頸的今天,要增加硬件的速度更多的是增加 CPU 核的數目。而針對這種情況,要使我們的程序運行效率提高,那么也應該從并發方面入手。傳統的多線程方法又極其容易出現 Bug 而難以維護,不過別擔心,今天將要介紹另一種并發的模式能一定程度解決這些問題,那就是 Actor 模型。

Actor 模型其實就是定義一組規則,這些規則規定了一組系統中各個模塊如何交互及回應。在一個 Actor 系統中,Actor 是最小的單元模塊,系統由多個 Actor 組成。每個 Actor 有兩個東西,一個是 mailbox,一個是自身狀態。同時 Actor 有接收和發送的功能。下面代碼給出一個大概的 Actor 樣例:

trait Actor { //持有一個表示自身狀態的私有變量 val state:Integer = 0; //持有一個mailbox 的隊列 val mailBox:mutable.Queue[Message] = scala.collection.mutable.Queue[Message]() def send(message : Message): Unit ={ ... } def recive(): Unit ={ ... }}

當一個 Actor 接收到消息后,它會執行下面三種操作中的一種:

創建其他 Actor。 向其他 Actor 發送消息。 修改自身狀態。

需要注意的是,盡管許多 Actor 同時運行,但是一個actor只能順序地處理消息。也就是說其它 Actor 發送了三條消息給一個 Actor ,這個 Actor 只能一次處理一條。所以如果你要并行處理3條消息,你需要把這條消息發給3個actors。

下面這張圖展示了一個簡單的 Actor 模型系統:

淺談JAVA Actor模型的一致性與隔離性

了解了 Actor 模型的大概規則后,我們用兩個具體的例子來看看 Actor 模型的妙處以及不足吧。

二. 兩個例子

2.1 素數計算

假設我們現在有一個任務,需要找出100000以內素數個數,并且使用多線程的方式實現。

下圖展示了使用共享內存的方式和以Actor模型的方式進行并發執行。

淺談JAVA Actor模型的一致性與隔離性

這里展示了兩種處理并發的不同思路,傳統的方式是通過鎖/同步的方式來實現并發,每次同步獲取當前值,并讓一個線程去判斷值是否為素數,是的話再通過同步的方式對計數器加1(這里的說明只是作為提供思路用,這種方法自然有很大的優化空間)。

而使用 Actor 模型則不一樣,它將這一過程拆分成幾個模塊,即拆分成幾個 Actor 。每個 Actor 負責不同的部分,通過消息傳遞的方式讓這幾個 Actor 協同工作,并且其中涉及到主要計算的 Actor 可以有多個,通過多個 Actor 協同工作實現并發。

2.2 銀行轉賬

銀行轉賬的任務描述很簡單,假設有兩個用戶,現在用戶A向用戶B轉賬100元,這個 Actor 模型該如何設計呢?

用戶 A 和 用戶 B 明顯是兩個 Actor ,但我們同時還需要一個可以控制用戶A Actor 和用戶B Actor 的 Actor ,我們稱之為 轉賬管家 Actor。那么流程圖如下。

淺談JAVA Actor模型的一致性與隔離性

可以看到,當一個轉賬需求過來的時候,Actor 管家會先向 用戶A Actor 發送扣款 100 元的信息,接受到扣款成功消息后再發送消息給用戶B Actor,發送讓其增加 100 元的消息。

一切看起來都很美好是吧,但這里面有一個問題,那就是在用戶A Actor 扣款期間,用戶B Actor 是不受限制的,此時對用戶B Actor 進行操作是合法的!針對這種情況單純的Actor模型就顯得比較乏力了,需要加入其他機制以保證一致性。

看到這你就明白了,Actor 模型并非萬能的,它有一定的缺點。那就是針對一致性要求比較強的場景比較乏力。

三. 為什么會出現 Actor 模型

接下來我們來聊聊為什么會有 Actor 模型這種并發編程模型出現。

我們需要先說說并發性中的一致性和隔離性

一致性即讓數據保持一致,比如銀行轉賬例子中,用戶A 轉給 用戶B 100塊錢,沒有其他干擾的情況下,轉賬完成時。用戶A 的賬戶必然減少 100 元,用戶B 的賬戶必然增加100 元,這就滿足了一致性。不能說用戶A 減少50 或用戶B 增加了 200。

隔離性可以理解為犧牲一部分的一致性需求,而獲得性能的提高。打個比方,在完全一致的情況下,任務都是串行的,這時候也就不存在隔離性了。

明白這些之后,你就直到為什么會有 Actor 模型了。

傳統并發模式,共享內存是傾向于強一致性弱隔離性的。比如悲觀鎖/同步的方式,其實就是使用強一致性的方式控制并發。而 Actor 模型天然是強隔離性且弱一致性,所以 Actor 模型在并發中有良好的性能,且易于控制和管理。

這樣你就明白 Actor 模型適合于什么樣的并發場景了,當對一致性需求不是很高的情況下且對性能需求較高時,Actor 模型無疑是一個值得嘗試的方案。

以上就是淺談JAVA Actor模型的一致性與隔離性的詳細內容,更多關于JAVA Actor模型的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 深圳市人通智能科技有限公司| 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | GAST/BRIWATEC/CINCINNATI/KARL-KLEIN/ZIEHL-ABEGG风机|亚喜科技 | 天津热油泵_管道泵_天津高温热油泵-天津市金丰泰机械泵业有限公司【官方网站】 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 全钢实验台,实验室工作台厂家-无锡市辰之航装饰材料有限公司 | POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 购买舔盐、舔砖、矿物质盐压块机,鱼饵、鱼饲料压块机--请到杜甫机械 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 钢骨架轻型板_膨石轻型板_钢骨架轻型板价格_恒道新材料 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 |