(1)关于gen_server的同步、异步消息处理的并发问题,即gen_server在处理handle_call的时候来了一个handle_info,会怎么处理?答案是无论同步异步,都是按照来的顺序one by one处理。
参考帖子:
http://youdao.fqdaili.com/baidu.com.php?u=9414a3d8bcb2ffaOi8vZXJsYW5nLjIwODY3OTMubjQubmFiYmxlLmNvbS9nZW4tc2VydmVyLWhhbmRsZS1pbmZvLXZzLWhhbmRsZS1jYWxsLXRkMjI0OTU3NS5odG1s&b=15
(2)关于process的调度(转)
引用
首先明确一点,Erlang的process的调度是抢占式的,而非couroutine的协作式的。其次,Erlang早期版本是只有一个调度器,运行在一个线程上,随着erts的发展,现在erlang的调度器已经支持smp,每个cpu关联一个调度器,并且可以明确指定哪个调度器绑定到哪个cpu上。第三,Erlang的调度也是采用优先队列+时间片轮询的方式,每个调度器关联一个ErtsRunQueue,ErtsRunQueue内部又分为三个ErtsRunPrioQueue队列,分别对应high,max和normal,low的优先级,其中normal和low共用一个队列;在Erlang中时间片是以reduction为单位,你可以将reduction理解成一次函数调用,每个被调度的process能执行的reduction次数是有限的。调度器每次都是从max队列开始寻找等待调度的process并执行,当前调度的队列如果为空或者执行的reductions超过限制,那么就降低优先级,调度下一个队列。
分享到:
相关推荐
erlang rebar 二进制
erlang整理的一些心得和lunix查看cpu和内存信息的方法
本书由Erlang之父Joe Armstrong编写,是毋庸置疑的经典著作。书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用...
这个是在erlang项目中使用google protobuf例子,配套文章地址http://blog.csdn.net/mycwq/article/details/21864191
erlang入门电子书 erlang编程 Introducing Erlang,作者Simon.St.Laurent
erlang程序设计第二版习题答案 ,是我自己写的习题解答,也对照过网上的一些答案,相对来说是更加简洁和符合题意的解答,不过后面几章因为时间问题没有写完,有问题或者意见可以私信找我。
erlang二进制共享对象的存储方式的讨论
学习erlang的时候尝试编写的小例子,使用post方式发送json数据来进行http请求,希望能帮到大家~
erlang 安装包
erlang 程序设计(第二版) 中文 pdf
Erlang及其应用Erlang及其应用Erlang及其应用
erlang二进制高效编程 erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 Erlang 程序:陷阱和对策 硝烟中的Erlang 深入底层: erlang VM基于多核处理器的可伸缩性特征 erlang VM内部...
使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。 使用Erlang来编写分布式应用...
使用erlang语言实现连接ElasticSearch服务器的客户端代码
erlang otp25 win安装包
在本文中,我们将介绍如何使用Erlang开发一个简单的游戏服务器,并讨论其优点和实现细节。 Why Erlang? Erlang是一种轻量级的语言,非常适合开发高性能的服务器应用程序。其主要优点有: * 轻量级process:...
erlang25.0 windows版本
ErlangB和ErlangC计算工具(exe可执行文件+excel两个) ErlangB和ErlangC计算工具(exe可执行文件+excel两个)
erlang22最新下载包 erlang22.1.tar.gz erlang22最新下载包 erlang22最新下载包
php扩展peb.so erlang通讯扩展,解决宝塔编译安装php peb扩展编译失败,直接上传到php扩展目录修改配置文件即可使用。