`
pascal4123
  • 浏览: 111173 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Erlang进程,节点

    博客分类:
  • FP
阅读更多
[进程]
创建进程
Pid = spawn(Fun)
Pid = spawn(Mod, Func, Args)
Pid = spawn(Node, Mod, Func, Args)
使用MFA启动进程是热升级的关键所在

杀死僵尸进程
kill(Pid)

注册进程 - 给进程绑定一个容易记住的原子名称
register(AnAtom, Pid)

注销进程 - 接触进程名称的绑定
unregister(AnAtom)

返回一个系统中所有被注册的进程名称列表
registered()

判断一个名称是否被注册
whereis(AnAtom)

远程工程调用
rpc:call(Node, Mod, Func, Args)

[消息]
发送消息
Pid ! Message

接受消息 - 遍历一次进程的邮箱,以匹配一个消息
receive
  Pattern1 -> Expr1;
  ...
after Time
  ExprN
end

特殊的延时函数
receive
after Time
  true
end


[节点,互通节点集]
一个Erlang节点就是一个自治系统,拥有独立进程集和地址空间,Erlang集群的节点可以在同一局域网上的不同机器上,它们之间可以互相通信。

为某个Erlang节点集(以共同的Magic Cookie标识)建立一个Erlang节点
erl -name Name -setcookie Cookie

如何确保欲构成Erlang节点集中的各个节点共享相同Magic Cookie?


[链接进程集]
在当前进程和另一个进程之间建立链接,链接是无向的,其中一个进程消亡时,系统会向另一个发出退出信号(Exit Signal),接收到退出信号的进程通常也会消亡,除非它是系统进程(这时,退出信号会转化成一个普通消息{'EXIT', Pid, Why})。
link(Pid)

解除指定进程和当前进程的链接
unlink(Pid)

指定当前进程为系统进程(可以接收和处理退出信号)
process_flag(trap_exit, true)

创建和本进程有链接的一个进程(比单独使用spawn和link更安全)
spawn_link(Fun) - > Pid

分享到:
评论

相关推荐

    erlang启动多节点,跨节点调用函数

    1.完成makefile,直接运行/...2.完成启动多节点的脚本,运行/script目录中的run.cmd可以启动3个节点, 节点的配置在/config目录config.txt中 3.完成跨节点函数的调用,记录日志都会在gm节点中执行 4.完成日志记录系统

    Erlang分布式节点中的注册进程使用实例

    主要介绍了Erlang分布式节点中的注册进程使用实例,本文直接给出实例代码,需要的朋友可以参考下

    introducing erlang

    ●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。 ●Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误。 ●面向并发的编程(COP concurrency-oriented programming) ...

    erlang-18.3.4.7-1.el6.x86_64.rpm

    ●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。 ●Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误。 ●面向并发的编程(COP concurrency-oriented programming) ...

    ergo:使用Golang中ErlangOTP的技术和设计模式创建网状网络的框架

    Ergo框架 在Golang中实现Erlang / OTP。 速度是原始Erlang / OTP的x5倍。 群集中热节点的最简单的直接替换。... 产生类似Erlang的进程 使用简单原子注册/注销过程 GenServer行为支持(具有原子状态)

    Erlang安装手册

     ●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。  ●Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误。  ●面向并发的编程(COP concurrency-oriented ...

    erlang-ffi:与Haskell的Erlang节点通信

    它是原始改进版本,可... 然后,我们用pid发送问候语到在Erlang节点erl@127.0.0.1上运行的注册进程p 。 我们希望得到一个答案,因此我们从邮箱中获得答案并将其打印输出到标准输出中。 import Foreign.Erlang main ::

    Pyrlang:在Python 3.5+中实现的Erlang节点(基于Asyncio)

    适用于Erlang版本19、20和21的Erlang分发协议Python“进程”的注册表,具有与Erlang兼容的进程标识符和可选的注册名称通过pid或名称在本地和远程发送和接收消息可以链接和监视来自Python的Erlang和来自Erlang的...

    epmdpxy:使用 Erlang Port Mapper Deamon 模拟 Netsplits

    新生成的侦听器进程接受一个连接并连接到远程节点的“真实”侦听器端口,充当两个 Erlang 节点之间的代理。 EPMD 如果分布式 Erlang 节点以-name或-sname参数启动,它将首先尝试连接到 EPMD。 如果 EPMD 未在该...

    vmstats:用于生成有关 Erlang VM 的信息的微型 Erlang 应用程序

    vmstats 是一个小型的 Erlang 应用程序,它收集 Erlang VM 上的指标并将它们发送到一个可配置的接收器(例如,StatsD)。 特征 vmstats 收集的不同指标包括: error_logger队列长度 加载的模块数 进程数 进程限制 ...

    erlang——Mnesia用户手册.pdf

    5.5.无盘节点 5.6.更多的模式管理 5.7.Mnesia.事件处理 5.8.调试.Mnesia.应用 5.9.Mnesia.里的并发进程 5.10.原型 5.11.Mnesia.基于对象的编程 6.Mnesia.系统信息 6.1.数据库配置数据 6.2.内核转储...

    kube_dist:Kubernetes 集群中的 Erlang 分布

    正确配置kube_dist ,erlang 节点的名称设置为${CONTAINER_NAME}@${POD_NAME} 。 此外,您可以使用 Kubernetes 的服务作为您的进程注册表。 gen_server:call({via, kube_endpoints, ServiceName}, Request) 请求...

    erlang_lpc:Erlang 的高度并行本地 RPC 式 pmap 执行框架

    LPC 的代码源自 Erlang 的 RPC 的 OTP 源。 它已被修剪和修改为仅包含在节点上本地执行 MFA 所需的基本要素。 最终结果是一个高度并行的本地 RPC 风格的 pmap 执行框架。 这意味着在 OTP 应用程序中使用,主管负责...

    ebt:Erlang行为树框架

    基于进程字典来是实现类变量, parse_transform实现类方法的继承.基于 修改,原项目将不再更新维护。%% 优先级选择节点,从左到右遍历子节点,若子节点的准入条件符合信息则执行该子节点-define(EBT_SELECTOR, ebt_...

    esqlite:sqlite的Erlang NIF

    如果您不想冒险,总是可以从单独的erlang节点访问sqlite nif。 特别注意不要阻塞调用进程的调度程序。 这是通过在轻量级线程中处理来自erlang的所有命令来完成的。 将命令添加到线程的命令队列后,erlang调度程序...

    erleans:二郎奥尔良

    Grain 的激活是 Erlang 集群中 Erlang 节点(silo)上的单个 Erlang 进程。 激活位置由Erleans处理,通信通过标准的Erlang分发进行。 如果一个谷子被发送了一条消息并且没有当前的激活,则生成一个。 Grain 状态...

    eixx:Erlang C ++接口

    eixx-Erlang C ++接口库该库提供了一组类,以便在进程之间方便地编组Erlang术语,以及从C ++应用程序连接到其他分布式Erlang节点。 编组类建立在包含的ei库的顶部。 该库包含两个独立的部分: 术语封送(包含在eterm...

    pfun:Erlang 可移植函数

    乐趣提供跨多个节点的可移植功能对象和代码加载的库__可移植函数__的缩写概述目标是解决常规 Erlang 函数对象的以下问题:无法跨多个代码加载生存如果一个函数对象所属的模块被更新两次,持有该对象的进程就会崩溃以...

    elixir-base:新的Elixir应用的骨架

    应用库从Erlang / OTP执行和控制OS进程用于Elixir的应用程序发布管理 Monadic,轻柔的,可扩展的效果处理宏扩展为可以在Guard子句中安全使用的代码用于将日志写入文件改善管道宏,用于进行CLI进度条的 用于CLI表的 ...

    hacker_news:演示为波特兰(缅因州)Erlang 和 Elixir 聚会分发的 Elixir 应用程序 - 通过 Firebase 访问黑客新闻

    将标题翻译委托给运行集群节点中的注册进程 这是为波特兰(缅因州)Erlang & Elixir Meetup 开发的 开始: 将您的 Google API 密钥存储在项目主目录中名为“google_api.key”的文件中 执行: iex --name something_...

Global site tag (gtag.js) - Google Analytics