自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Actor模型的本質(zhì):究竟是要解決什么問(wèn)題

開(kāi)發(fā) 開(kāi)發(fā)工具
本文對(duì)Actor模型的本質(zhì)進(jìn)行了回顧:萬(wàn)物皆Actor。Actor之間只有發(fā)送消息這一種通信方式。

Actor模型的本質(zhì)已經(jīng)被強(qiáng)調(diào)了無(wú)數(shù)遍:萬(wàn)物皆Actor。Actor之間只有發(fā)送消息這一種通信方式,例如,無(wú)論是管理員讓工作者干活,還是工作者把成果交還給管理員,它們之間也要通過(guò)發(fā)送消息的方式來(lái)傳遞信息。這么做看似不如直接方法調(diào)用來(lái)的直接,但是由于大量的消息可以同時(shí)執(zhí)行。同樣,消息讓Actor之間解耦,消息發(fā)出之后執(zhí)行成功還是失敗,需要耗費(fèi)多少時(shí)間,只要沒(méi)有消息傳遞回來(lái),這一切都和發(fā)送方無(wú)關(guān)。Actor模型的消息傳遞形式簡(jiǎn)化了并行程序的開(kāi)發(fā),使開(kāi)發(fā)人員無(wú)需在共享內(nèi)存(確切地說(shuō),其實(shí)是共享“寫(xiě)”)環(huán)境中與“鎖”、“互斥體”等常用基礎(chǔ)元素打交道。不過(guò),使用Actor模型編寫(xiě)應(yīng)用程序,需要開(kāi)發(fā)人員使用一種與以往不同的設(shè)計(jì)思路,這樣的思路說(shuō)難倒不難,說(shuō)簡(jiǎn)單也不簡(jiǎn)單。等我們有了成熟、穩(wěn)固的Actor模型之后(例如高效的調(diào)度,合適的容錯(cuò)機(jī)制,老趙正在為此努力),再回頭來(lái)探究這種特殊的架構(gòu)方式。

由于Actor執(zhí)行的唯一“事件”便是接受到了一個(gè)消息,而一個(gè)Actor很可能會(huì)做多件事情,因此我們一定需要一種機(jī)制,可以把消息“分派”到不同的“邏輯段”中去,并為不同的邏輯指定各自所需要的參數(shù)。例如,Person是一個(gè)Actor類型,它有三種任務(wù),不同的任務(wù)會(huì)帶有不同參數(shù):
◆聊天(Chat):指定另一個(gè)Person對(duì)象(聊天的另一方),以及一個(gè)Topic對(duì)象(聊天的話題)。
◆吃飯(Eat):指定一個(gè)Restaurant對(duì)象(餐館)。
◆干活(Work):指定一個(gè)Person對(duì)象(工作完成后的匯報(bào)人),以及一個(gè)Job對(duì)象(任務(wù))。

當(dāng)Person對(duì)象獲得一條消息時(shí),它需要將其識(shí)別為聊天、吃飯或干活中的一種,再?gòu)闹蝎@取到這個(gè)行動(dòng)所需要的數(shù)據(jù)。如果用一幅示意圖來(lái)表示,它可能是這樣的:

Person是一個(gè)Actor類型,它有三種任務(wù) 

 
如何在C#中把一條消息轉(zhuǎn)化為一段邏輯的執(zhí)行,并且盡可能確保一些優(yōu)勢(shì)(如易于編寫(xiě),靜態(tài)檢查,代碼提示,重構(gòu),單元測(cè)試……),這便是這系列文章唯一的目的。正如文章的標(biāo)題,我們關(guān)注的是“消息執(zhí)行方式”,而不是:
◆“消息傳遞”與“共享內(nèi)存”兩種并行方式的比較
◆講述Actor模型的應(yīng)用程序設(shè)計(jì)方式。
◆提出消息傳遞時(shí)的解耦方式。
……

文章使用Actor模型作為示例,是因?yàn)槲揖帉?xiě)的ActorLite組件易于說(shuō)明問(wèn)題,并且是典型的“消息傳遞”場(chǎng)景。事實(shí)上,文章所表達(dá)的內(nèi)容,適合任何基于消息傳遞的C#場(chǎng)景,例如內(nèi)存中的消息隊(duì)列、生產(chǎn)者/消費(fèi)者模式、消息總線……它并沒(méi)有限制Actor模型這一種架構(gòu)方式。

【編輯推薦】

  1. 順暢的使用C# Actor:另一個(gè)解決方案
  2. C# Actor的尷尬與F#美麗外表下的遺憾
  3. 看Erlang中Actor模型的執(zhí)行方式和優(yōu)劣
  4. Erlang面向分布與并發(fā)的編程語(yǔ)言
  5. Erlang十分鐘快速入門(mén)
責(zé)任編輯:yangsai 來(lái)源: 老趙點(diǎn)滴
相關(guān)推薦

2011-02-16 16:13:40

Debian

2019-04-26 13:01:16

ServiceMesh微服務(wù)架構(gòu)

2019-04-26 13:55:02

Istio微服務(wù)架構(gòu)

2022-06-13 09:51:35

UWB超寬帶無(wú)線載波通信技術(shù)

2012-05-28 22:49:50

PureView

2011-08-04 13:24:28

IT運(yùn)維

2015-09-29 09:47:14

2018-09-10 13:47:21

數(shù)據(jù)科學(xué)統(tǒng)計(jì)學(xué)決策

2019-05-27 15:30:44

Node.jsJavaScript前端

2015-08-26 09:54:19

物聯(lián)網(wǎng)

2023-10-20 10:09:44

人工智能

2019-07-22 15:29:53

JavaScriptGitHub語(yǔ)言

2019-06-04 14:15:08

JavaScript V8前端

2025-03-31 00:33:00

2011-02-28 09:51:43

內(nèi)省

2021-08-09 05:19:08

Provider 前端前端代碼

2022-06-09 10:10:24

前端組件化解耦

2014-07-28 08:28:38

Windows

2014-08-07 10:32:02

Windows微軟

2015-12-30 10:43:13

白盒網(wǎng)絡(luò)SDN
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)