erlang的trap机制在实现中用的很多,在费时的BIF操作中基本上都可以看到。它的实现需要erl vm的配合。它的作用基本上有3个:
1. 把费时操作分阶段做。由于erlang是个软实时系统,一个进程或者bif不能无限制的占用cpu时间。所以erlang的每个进程执行的时候,最多只能执行一定数量的指令.这个是设计方面的目标。实现上也要配套。所以比如md5,list_member查找这种可能耗时的操作都是用trap机制来实现的,也就是说 当进程调度到的时候 执行一定数量的计算 然后把上下文trap起来 放弃执行 等待下一次的调度 来继续计算。
2. 延迟执行,实现上层的决策。 明显的例子是 send操作。 send的时候 节点间可能未连接,所以这个send的操作不能继续,先trap, 然后在下一次的调度的时候 执行节点连接操作,一旦成功 send操作就继续往下执行。对客户来讲这个操作是透明的。他不知道你幕后的这些事情。
3. 主动放弃CPU yield.
erlang设计还是蛮细致的!
PS:涉及到费时操作的BIF有:
do_bif_utf8_to_list
ets_delete_1
spawn_3
monitor_2
spawn_link_3
spawn_opt_1
send_2
crc32_1
adler32_1
md5_1
send_3
build_utf8_return
build_list_return
finalize_list_to_list
do_bif_utf8_to_list
ets_select_reverse
ets_match_spec_run_r_3
re_run_3
re_exec_trap
keyfind
monitor_node_3.
分享到:
相关推荐
erlang-erts-19.3.6.4-1.el7.x86_64.rpm
【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...
### Erlang运行时系统应用(ERTS):匹配规格与API概述 #### 一、Erlang运行时系统应用(ERTS) Erlang运行时系统应用(ERTS)是...随着Erlang及其运行时系统的不断发展,ERTS将继续为开发者提供强大的工具和支持。
接着,文档深入讲解了Erlang OTP框架的核心概念,包括监督树、进程模型、行为模式和热代码升级机制。最后,文档通过具体的代码示例演示了如何使用Erlang OTP框架开发电话系统、即时通讯系统和分布式数据库应用,涵盖...
**Erlang设计指南** Erlang是一种面向并发的、函数式编程语言,它由瑞典电信设备制造商Ericsson开发,主要用于构建高度可扩展和容错性强的分布式系统。"Programming Erlang: Software for a Concurrent World"是Joe...
### Erlang VM (Erlang虚拟机)深入解析 #### Erlang简介 Erlang是一种通用、并发、强容错的编程语言,最初由...通过深入了解Erlang VM的工作原理及其特性,我们可以更好地利用其优势来设计和实现高效可靠的系统。
Erlang的虚拟机(VM)即Erlang Runtime System(ERTS),是Erlang系统运行的基础。它支持轻量级进程,提供了高效的并发处理能力。在性能方面,ERTS经过优化,能够在多种硬件架构上高效运行。进行VM的定量分析是了解...
在深入理解Erlang的timer模块的同时,还可以查阅《Erlang程序设计》这本书,它提供了更多关于Erlang语言特性和实践的详细信息。此外,提供的"erlang的timer和实现机制.pdf"和"更多erlang资料下载.txt"也是进一步学习...
Erlang的IO系统设计得非常高效,无论是处理磁盘IO还是网络IO,都有相应的机制保证高效的并发处理。这一点在构建大规模网络服务时尤其重要。 #### 6. Erlang的新增特性和模块 ##### 6.1 Percept并发性能调测模块 ...
8. **错误处理**:Erlang的错误处理通常通过异常机制进行,如果捕获到异常,可以决定是否恢复执行或退出进程。 9. **网络编程**:Erlang天生适合网络编程,因为其内置了对TCP、UDP等协议的支持,可以轻松创建分布式...
### Erlang语言程序设计 #### 一、Erlang语言简介与重要性 Erlang是一种功能强大且灵活的编程语言,它最初由爱立信公司开发,旨在为电信系统提供高并发、分布式处理能力。随着时间的发展,Erlang不仅在电信领域...
Erlang OTP设计原理是一份深入探讨Erlang/OTP(Open Telecom Platform)框架中设计模式和组织代码原则的文档。Erlang OTP作为Erlang语言的中间件平台,提供了构建可扩展和容错系统的标准方法。 文档开篇就介绍了...
Erlang是一种通用编程语言和运行环境,专为并发性、分布性和容错性而设计。它最初由爱立信开发,用于大型电信系统。Erlang的特点使其特别适合构建分布式、可靠且具有软实时性的并发系统,如电话交换控制系统、互联网...
erlang文献及资料汇总 入门资料: erlang中文手册(R11B 文档译文,最适合入门) ...erlang VM内部数据共享机制 erlang 消息传递机制 文章地址:http://blog.csdn.net/mycwq/article/details/43115733
Erlang中的链接(Linking)和监控(Monitoring)机制允许进程间建立关系,以便在另一进程崩溃时得到通知。链接用于追踪相关进程的状态,而监控则可以观察进程的生存状态。 ### 5. 消息传递 Erlang的进程间通信主要...
Erlang的设计哲学使得它能够优雅地处理高并发场景,并且由于进程的轻量级和消息传递机制,Erlang能够在保持高性能的同时实现容错。 这本书不仅适合Erlang初学者阅读,而且对于那些对Erlang设计哲学和应用开发感兴趣...
2. **错误隔离与容错**:Erlang提供了简单而强大的错误容器和容错机制,即监督进程(supervised processes)。当一个进程崩溃时,它能够被自动重启,以确保系统的稳定性和可靠性。 3. **分布式应用**:编写分布式...
源码中可能包含了`erts`(Erlang Run-Time System)的相关部分,它负责进程的创建、调度和通信。了解这些内部实现有助于理解Erlang如何高效地处理并发。 2. **BEAM虚拟机** BEAM是Erlang虚拟机的缩写,它是Erlang...
本文提供centos系统下erlang的RPM安装包,版本为24.3.4.13