打算在C++成立仿Erlang式的漫衍式并行机制
当前位置:以往代写 > C/C++ 教程 >打算在C++成立仿Erlang式的漫衍式并行机制
2019-06-13

打算在C++成立仿Erlang式的漫衍式并行机制

打算在C++成立仿Erlang式的漫衍式并行机制

梳理了下需求,概略如下:

历程(Process)。历程是Erlang中一个虚拟的运行单元。既不是操纵系统的历程,也不 是线程,而是比线程越发轻量的单元,更靠近于协程。

定名历程(NamedProcess)。定名历程的长处是,你可以向一个不知道历程ID的历程发送 动静。由于历程大概会宕掉(crash),历程ID大概会产生变革,所以在思量了异常的情况下 ,定名历程低落了编码的难度(你不再需要思量历程crash检测和重建毗连的进程)。

历程邮箱(Mailbox)。每个历程都拥有一个本身的邮箱,其他历程发送动静到该邮箱, 而历程在符合的机缘从中取出动静并处理惩罚之。

按时器(Timer)。这个是属于最最基本的模块,用于多种用途,如超时检测等。

动静编码/解码(encode/decode)。将历程的请求(sync/async的函数挪用)encode为网 络动静流,或将网络动静流decode回历程的请求。

动静发送/吸收(send/receive)。发送(send)指将动静(Message)发送到方针历程( Process)的历程邮箱(Mailbox)中。吸收(receive)则从历程邮箱(Mailbox)取出动静 (Message)。吸收可以有选择性吸收(selective receive),即按必然的匹配模式选择要 吸收的动静。

历程链接与监控(link/monitor)。当两个历程链接时,一个挂掉后会通知另一个历程。

速错(fail fast)。这关乎资源打点(Resource Management)与异常处理惩罚(Exception Handling)。Erlang的哲学是产生不行规复的错误时就当即死掉。而历程的资源(如内存、 打开的文件等等)需要被自动释放。

通用处事器(Server)。历程(Process)大概是一个普通的事情者(Worker),也可以 是处事器(Server)。通用处事器架构实现了一套高靠得住的处事器模子。

大抵想象了下实现,已经根基有谱。

    关键字:

在线提交作业