erlang是怎么调度的

    原创翻译文章,转载请注明出处http://blog.csdn.net/erlib 作者Sunface

 

   在这篇文章中我会说明为什么erlang和其他绝大数语言的runtime是不同的,还会说明为什么它会为了更低延迟而牺牲一点高吞吐量。

   erlang跟其他语言Runtime不一样的地方在于它的目标是不同的,这就是为什么Erlang在少数进程的情况下表现的不如其他语言但是在很多进程的情况下表现的很好。

   不时的都会有人问erlang是如何调度的,这篇文章是调度原理的缩简版本,主要是描述erlang如何操作它的进程的。注意这里我使用的是erlang R15规范,如果你是来自未来的读者,那么也不用担心 ———虽然可能会改变很多,但是事情往往朝着更好的地方发展。

 

    对于操作系统而言,erlang一般都是每个CPU内核都有一个线程在运行,每个线程都有一个调度器,这是为了确保机器的所有CPU内核都能为erlang系统工作,CPU内核会通过+sbt flag绑定到调度器上,这就表明调度器不会在一个内核跳到另外一个内核(0它只会工作在现代操作系统中),这个说明erlang系统知道各个处理器的排列和内在关系,这是很重要的,因为缓存和miration times等原因,在很多情况下+sbt flag可以提升你的系统的运行速度,在有些时候甚至会提升很多很多。

    +A flag 为异步线程池定义了多个异步线程,这个线程池可以被drivers使用,用来阻塞某个操作,而调度器在其中一个线程池被阻塞的时候就依然能做一些有用的工作。最值得注意的是线程池是被文件驱动用来加速文件I/O操作,而不是网络I

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值