【问题标题】:Erlang Socket at OS Level操作系统级别的 Erlang 套接字
【发布时间】:2021-12-08 09:21:10
【问题描述】:

我对多线程网络感到很困惑。由于 Socket 是 OS 级别的结构,因此在 Erlang BEAM VM 级别处理套接字在 OS 级别具有等价物,并且有多种选项可以通过 OS 线程(select、poll、epoll ......)处理并行连接,并且取决于操作系统,但我无法理解,我搜索了很多但没有任何答案是:如果我们有 4 个 Parallel Erlang 进程在一个 Socket 上侦听接受连接,那么 OS 的等价物是什么等级? 4 等待 Parallel 操作系统线程? N个并行操作系统线程?

【问题讨论】:

  • 您最近询问了基本相同问题的多个变体。如果您正在寻找 Erlang 虚拟机内部的详细信息,我的建议是阅读 The Beam Book。
  • 感谢您的帮助,我想这就是我要搜索的内容
  • 对不起,套接字和网络章节丢失了
  • 是的,这有点不幸。但是你仍然可以使用这本书来了解更多关于 Erlang VM 调度程序的信息。我还鼓励您在Erlang Slack 甚至build your own debuggable Erlang runtime 上提问,以便您可以使用调试器查看调度程序在做什么。
  • 我对调试器的了解是调试你的程序,它不显示内部管理,我会试试 Erlang Slack 谢谢你的链接

标签: linux erlang elixir freebsd erlang-otp


【解决方案1】:

这是一个很难绘制的对应关系。您的建议 4 Parallel threads 可能是最接近的等价物。事情变得有点难以确定,因为内核线程可能会比每个进程占用更多的系统资源。线程通常共享内存空间,而进程之间存在内存保护。所以这取决于你想采取多远的比喻,但基本上会有 4 条单独的处理行在 I/O 上阻塞。

【讨论】:

    猜你喜欢
    • 2012-01-05
    • 2014-11-30
    • 2015-06-26
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2012-08-26
    • 2011-08-11
    • 2014-07-27
    相关资源
    最近更新 更多