`
pascal4123
  • 浏览: 115145 次
  • 性别: 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进程是独立的,当一个进程崩溃时,它不会影响其他进程。OTP的错误处理机制允许系统优雅地处理错误,恢复到稳定状态。Supervisors可以配置为简单的一次重启、有限次数的重启或停止整个子树,从而避免无限...

    erlang节点连通测试

    在Erlang中,节点(Node)是运行Erlang虚拟机(VM,也称为BEAM)的实体,可以是本地进程,也可以是远程机器上的进程。节点之间可以进行通信,这是Erlang分布式计算的基础。现在我们来深入探讨如何进行Erlang节点的...

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

    通过上述实例代码和解释,我们可以看到如何在Erlang中使用注册进程,如何在分布式节点间发送消息以及如何远程调用函数。掌握这些知识点有助于开发者设计和实现能够应对大规模并发和高可用性的分布式系统。

    Erlang脚本在进程间通信中的高效应用与实践

    通过本地进程通信、远程节点通信以及通过端口与外部系统通信,Erlang脚本可以满足各种复杂的通信需求。随着并发和分布式系统的不断发展,Erlang脚本在进程间通信中的应用将更加广泛和深入。通过实际的代码示例,我们...

    erlang编程 Introducing Erlang

    Erlang支持跨节点的分布式计算,允许不同物理机器上的进程之间通信。分布式Erlang使用虚拟机(VM)的克隆,使得构建大规模分布式系统变得简单。 ### 7. 错误处理与恢复 Erlang采用“let it crash”哲学,鼓励程序...

    Erlang_CNode用户指

    CNode的主要功能包括创建Erlang进程,发送和接收消息,以及调用Erlang的函数。 **Erlang_CNode用户指南** Erlang_CNode用户指南通常会涵盖以下几个核心主题: 1. **安装和配置**:指导用户如何在系统上安装Erlang...

    erlang-18.3.4.7-1.el6.x86_64.rpm

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

    erlang_版本24.3.4.4

    Erlang以其强大的错误恢复能力和轻量级进程(称为Erlang进程)而闻名,这些进程具有内置的并发性和容错性。 在安装Erlang 24.3.4.4之前,首先需要了解你的操作系统是否支持。Erlang支持多种平台,包括Windows、...

    windows下安装Erlang环境

    **外部接口**:Erlang进程与外部世界的交互也依赖于消息传递,这保持了一致性,简化了系统的复杂性。 **Fail-fast原则**:Erlang倾向于快速暴露错误,以便开发者能尽早发现问题并修复。 **面向并发的编程**:...

    erlang资源

    4. **分布式编程**:Erlang进程可以分布在多个节点上,实现分布式系统的构建。书可能讲解了如何进行节点间通信、分布式数据管理和负载均衡。 5. **模式匹配**:Erlang的函数定义允许模式匹配,使得代码更加简洁和可...

    erlang整理的一些心得和lunix查看cpu和内存信息的方法

    4. **分布式编程**:Erlang 支持跨节点的分布式计算,可以轻松地构建大规模的分布式系统。 5. **热代码升级**:Erlang 允许在运行时更新代码,无需停止服务,这对于维护和更新生产环境中的系统非常有用。 6. **OTP...

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

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

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

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

    Erlang入门

    Erlang的并发模型是基于轻量级进程(也称为Erlang进程)的,它们之间的通信通过消息传递完成。这种方式降低了同步开销,提高了系统的并行性。每个进程都有自己的内存空间,减少了数据竞争的风险。当一个进程崩溃时,...

    ainterface:在Akka的ActorSystem上运行Erlang节点

    Akka是一个用Scala语言构建的高性能、分布式...这涉及到Akka的`akka-cluster`模块,Erlang节点的连接和配置,以及Actor与Erlang进程之间的通信。要了解更多细节,深入研究`ainterface-master`源代码是必不可少的步骤。

    Erlang6大数据存储方式总结

    ETS的缺点在于数据不会持久化,当进程结束或节点崩溃时,数据会丢失。 2. DETS (Distributed Erlang Term Storage) DETS是ETS的磁盘版本,它将数据存储在磁盘上,提供持久化。DETS的读写速度相对较慢,但能确保数据...

    erlang23.2版windows64位.zip

    3. **分布式**:Erlang天生支持分布式计算,节点间的通信如同本地进程一样便捷,适合构建分布式系统。 4. **动态类型**:Erlang采用动态类型,允许快速开发和迭代,但同时也可能导致运行时错误。 5. **函数式编程*...

    Erlang深度分析

    理解Erlang进程的创建、销毁和消息传递机制是掌握Erlang并发编程的关键。 ##### 4.2 网络编程 Erlang在构建网络应用方面表现出色,提供了丰富的网络编程接口,如gen_tcp、gen_udp等。同时,Erlang还支持多种网络...

Global site tag (gtag.js) - Google Analytics